হ্যাঁ, আপনি ঠিক বলেছেন, এই 2 ডি জলের প্রভাবটি গণিত সাইন ফাংশন ব্যবহার করে সিমুলেটেড করা যায় :
wave = sin(phase + t * frequency) * amplitude
phase
একটি ধ্রুবক, আপনি যা চান রাখুন।
t
আপনি প্রক্রিয়াজাত পিক্সেল / ভার্টেক্সের অনুভূমিক অবস্থানে সেট করুন :t = x;
সময়ের সাথে সাথে পরিবর্তন করুন amplitude
(এটি তরঙ্গগুলি উপরে এবং নীচে চলতে সক্ষম করবে):
amplitude = sin(t * wave_speed) * wave_height
আরও আপেক্ষিক প্রভাব পেতে বিভিন্ন তরঙ্গ একত্রিত করুন:
wave_final = wave0 + wave1 + ...
।
প্রতিটি তরঙ্গের জন্য কিছু পরামিতি কিছুটা পরিবর্তন করুন (যেমন: পর্ব, ফ্রিকোয়েন্সি, ...)।
এখানে দুটি তরঙ্গ ব্যবহার করে আমি তৈরি করা একটি দ্রুত উদাহরণ রয়েছে:
http://glslsandbox.com/e#4988.0 (সাম্প্রতিক ব্রাউজার এবং ওয়েবজিএল সক্ষম হওয়া প্রয়োজন)
দ্রষ্টব্য: এটি একটি শেডার, তবে 2D আদিম ব্যবহার করে এটি করা একই পদ্ধতি।
সম্পাদনা: আপনি কোনও ফ্রেমওয়ার্ক বা 2 ডি রেন্ডারিং সিস্টেম নির্দিষ্ট করে তুলবেন না তবে এখানে বহুভুজ / ত্রিভুজ স্ট্রিপগুলি ব্যবহার করে কীভাবে রেন্ডার করা যায় তা এখানে: