2D জল শীর্ষ পৃষ্ঠ প্রোফাইল


9

আমি একটি ভার্টেক্স-টুকরা শেডার দিয়ে জলের পৃষ্ঠের বেধের প্রভাব তৈরি করার চেষ্টা করছি।

আমি 3 ডি গেমের পরিবেশে আছি তবে এটি একটি স্ক্রোল ভিউ তাই "2 ডি" ভিউ। এখানে টুকরা শ্যাডার ব্যবহার করে বাস্তব 2D তে এ জাতীয় প্রভাব তৈরি করার একটি ভাল টিউটোরিয়াল।
তবে আমার মনে হয় এটি আমার ক্ষেত্রে ব্যবহার করা যাবে না। মুহুর্তের জন্য আমার কাছে কেবল একটি বিমান ছিল আমি প্রতিসরণ প্রয়োগ করেছি।

প্রতিসরণ

এবং আমি পানির বেধ প্রভাব প্রয়োগ করতে চাই। তবে আমি কীভাবে এটি করব তা জানি না।
আমি মুহুর্তের জন্য ভার্টেক্স ব্যবহার করে কিছু জল বিকৃতি / স্থানচ্যুতি তৈরি করার চেষ্টা করছি না, এটি বিন্দু নয়।

আমি জানি না এটি যদি একটি সাধারণ চতুর্থাংশ দিয়ে সম্ভব হয় তবে আমি এই জাতীয় কোনও জিনিস ব্যবহার করব।

পদ্ধতি

এখানে কিছু উদাহরণঃ.

1 2 4 Rayman

এই প্রভাবটি কীভাবে তৈরি করা যায় সে সম্পর্কে আমার কোনও ধারণা নেই।

অনেক ধন্যবাদ !

[ সম্পাদনা ] এর প্রভাবের আরও ভাল রেফারেন্স রাখতে রায়ম্যান জল প্রভাব যুক্ত করেছে।


আপনি বর্তমানে আপনার জল প্রভাব কীভাবে করছেন? পোস্টের প্রথম স্ক্রিনশটটি যদি আপনার হয় তবে মনে হচ্ছে আপনি দৃশ্যের উপর একটি 2D কোয়াড আঁকছেন, এটি একটি ছায়াময় যা এটি বিকৃত করে। যদি এটি সঠিক হয় তবে আপনি টিউটোরিয়ালের নির্দেশিকাটি কেন অনুসরণ করতে পারবেন না, এটি একটি বিকৃত 2D টেক্সচার ব্যবহারের ভিত্তিতেও রয়েছে?
নাথান রিড

আমার একটি ভার্টেক্স-ফ্রেগমেন্ট শেডার সহ একটি 3 ডি কোয়াড রয়েছে যা পটভূমিটিকে বিকৃত করে (পটভূমিটি ইউনিটি গ্র্যাবপাস কার্যকারিতা দ্বারা ক্যাপচার করা হয়)। আমি মনে করি না যে 2 ডি টেক্সচারটি ব্যবহার করা একটি ভাল ধারণা, আমি প্রচলিত পরামিতিগুলির সাথে আরও সাধারণ কিছু সম্পর্কে ভাবছিলাম তবে মনে হয় এর অন্য কোনও উপায় নেই ... এবং এটি ধীর হবে না?
মেট

উত্তর:


1

শেডারে একটি মান রয়েছে যা আর্দ্রতা নির্দিষ্ট করে। 0 এর চেয়ে ছোট মানে বায়ু, 1 এর চেয়ে বেশি জল জল এবং এর মধ্যে মেনিসকাস us

এখানে কয়েকটি সিডো কোড রয়েছে:

vec2 uv2 = bigWaves(uv); // modify the texture coords to create a wavy water effect
float wetness = (uv2.y - 0.1) * 100;

if( wetness<0.0 )
{
    gl_Fragment = texture2D(screen_texture,uv); // is air - no refraction or effect
}
else if( wetness>1.0 )
{
    vec2 uv3 = smallWaves(uv2); // modify the texture coords to create a ripply water effect
    gl_Fragment = texture2D(screen_texture,uv3); // is water - with refraction
}
else
{
    gl_Fragment = vec4(1,1,1,1); // solid white meniscus
}

এটি আমি এটি তৈরি করতে পারি সবচেয়ে সহজ। এটি যদি আমি থাকতাম তবে আমি মেনিস্কাসকে এন্টিয়ালিয়াসে আরও জটিল কিছু করতাম এবং সেখানে আরও কিছুটা প্রতিসরণ বা কিছু প্রয়োগ করতাম তবে আমি আপনাকে বলতে পারি না কারণ এটি নান্দনিক পুনরাবৃত্তি গ্রহণ করবে। এছাড়াও, আমি জলের নমুনাটি রঙিন ও ঝাপসা করে দেব তবে আমি এ সব আপনার কাছে রেখে দেব।


হ্যাঁ, এটি একটি ভাল ধারণা! আমি অস্পষ্টতা এবং আভা সম্পর্কে সম্পূর্ণ সম্মত agree আমি একটি গভীরতা (Y) গ্রেডিয়েন্টও যুক্ত করছি (সম্ভবত অন্য গভীরতা (জেড) গ্রেডিয়েন্ট)। আমারও মেনিস্কাস জোনে একটি আলাদা প্রতিসরণ প্রভাব যুক্ত করা উচিত তবে মুহুর্তের জন্য আমি রায়ম্যানের মতো একটি রিপল ইফেক্ট নেওয়ার চেষ্টা করছি। কিন্তু আমি জানি না কিভাবে। এই ডুপ্লিকেট প্রভাবটি পেতে মেনিস্কাসের জন্য আমার বিভিন্ন টেক্সচার ব্যবহার করা উচিত। আমি জানিনা আমি কী বলতে চাইছি তা আপনি জানেন কিনা।
ম্যাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.