গ্রাফিক্স প্রোগ্রামিং গেটের অভ্যন্তরে ক্রোনো ট্রিগার থেকে রূপান্তরের প্রতিরূপ তৈরি করছে


9

আমি প্রথমবারের মতো এই গেমটি ইদানীং খেলতে শুরু করেছি এবং এটি সত্যিই আমার আগ্রহ ছড়িয়ে দিয়েছে

আপনি গতিতে রূপান্তরটি ~ 12: 08 এ শুরু করতে পারেন

মনে হচ্ছে সেখানে কিছু আকর্ষণীয় গণিত হচ্ছে। এটি প্রদর্শিত হবে যে একসাথে দুটি পৃথক মতামত আছে। নীল রঙের রিপলগুলি প্রথমে ব্যাকগ্রাউন্ডে রেন্ডার করা হয় এবং তারপরে বেগুনি দোলনা তরঙ্গগুলি কোনও ধরণের সিউডো 3 ডি প্রজেকশনটিতে রেন্ডার করা হয়।

তারা ঠিক কীভাবে এই ফলাফলটিতে এসেছিল তা আমার বাইরে এবং কৌতূহল আমার পক্ষে আরও ভাল হয়েছে।

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


2
দেখতে 3 টি প্লেন, একটি উপরে, একটি নীচে এবং একটি ক্যামেরার মুখোমুখি।
মাইকেলহাউস

উপরে / নীচে প্লেনগুলি গভীরতার মায়া দেওয়ার জন্য অভিন্নভাবে স্কেল করা হয়। এখানে কোনও "ক্যামেরা" নেই, কেবল কিছু স্কেলিং স্টাফ রয়েছে বা নেই। "ক্যামেরার মুখোমুখি" সম্ভবত সম্ভবত একটি অ্যানিমেশন বা কিছু, বা কোনও অ্যানিমেশনের কিছু চালাক টাইলিং।
র‌্যান্ডিগল

1
এই উইকিপিডিয়া নিবন্ধটি দেখুন: en.wikedia.org/wiki/Mode_7
নেভরেন্দ্র

উত্তর:


11

আমি শেডার ব্যবহার করে প্রভাবটির সদৃশ করার চেষ্টা করেছি।

শ্যাডর00 কেন্দ্র: https://www.shadertoy.com/view/XsXSz2

Shader01 পাশ: https://www.shadertoy.com/view/4sXSz2

:) আপনি যেমন বাইট 56 বলেছিলেন, তিনটি প্লেন সেট আপ করতে পারেন। শেডার ১০০ এর সাথে সরাসরি ক্যামেরার মুখোমুখি একটি বিমান এবং তারপরে শ্যাডার0১ এর সাথে দুটি বিমান, র্যান্ডি গৌল হিসাবে উল্লিখিত, শীর্ষে / নীচে অভিন্নভাবে গভীরতার মায়া দেওয়ার জন্য স্কেল করা হয়েছে।

তাদের, আমার বিশ্বাস, বিশ্বাসযোগ্য হওয়ার জন্য পর্যাপ্ত 3D চেহারা দেওয়া উচিত।

দু'টি শেডারই আপনার ইউটিউব লিঙ্কের মতো ঠিক একই রকম নয় (এছাড়াও এগুলি মোটামুটি খসড়াও বেশি)। তবে আমি বিশ্বাস করি যে এই শেডারগুলি আশা করি, আপনাকে নিজের সংস্করণ তৈরি করতে একটি জায়গা দিতে পারে।

টিউটোরিয়াল: কীভাবে একটি সাধারণ স্ট্রাইপ প্যাটার্ন তৈরি করা যায়।

প্লেনের প্রতিটি পয়েন্টের সমন্বয় থাকে। শেডার এফেক্ট তৈরির চেষ্টাটি মূলত বিমানটিতে 2D গণিতটি ভিজ্যুয়ালাইজ করা। এখানে একটি সহজ উদাহরণ উপস্থাপন করা যাক।

//This shader will visualize coordinates 
vec2 uv = gl_FragCoord.xy / iResolution.xy;
gl_FragColor = vec4(uv.x,uv.y,0,1);

এখানে চিত্র বর্ণনা লিখুন

রঙের বর্ণটি x স্থানাঙ্কের প্রতিনিধিত্ব করবে এবং সবুজ রঙ y স্থানাঙ্কের প্রতিনিধিত্ব করবে। আপাতত, আমরা সহজতম শেডার এফেক্ট তৈরি করতে চাই; একটি স্ট্রাইপ আমাদের এই টিউটোরিয়ালটির জন্য uv.y মান প্রয়োজন হবে না।

vec2 uv = gl_FragCoord.xy / iResolution.xy;
gl_FragColor = vec4(uv.x,0,0,1);

এখানে চিত্র বর্ণনা লিখুন

আপনি দেখতে পাচ্ছেন যে ডান দিকের দিকে যাওয়ার সাথে সাথে লাল রঙটি তীব্র হয়ে ওঠে। এর কারণ আপনি ডান দিকে যাওয়ার সময় স্থানাঙ্কের x মান বেশি হয়; বাম প্রান্তের x স্থানাঙ্ক 0 থেকে শুরু হয় এবং ডান প্রান্তের x স্থানাঙ্ক 1 হয়।

যেহেতু আমাদের এই প্রাথমিক বোঝাপড়া আছে আসুন কিছু "স্বজ্ঞাত" চেষ্টা করি

vec2 uv = gl_FragCoord.xy / iResolution.xy;
float color = 0.0;
if(uv.x < .5 ) color= 1.0 ;
gl_FragColor = vec4(color,0,0,1);

এখানে চিত্র বর্ণনা লিখুন

সেখানে আপনার স্ট্রিপ প্যাটার্ন রয়েছে। অপেক্ষা করুন ... এটি বেশ ঠিক দেখাচ্ছে না। হ্যাঁ এটি কেবল লাল এবং কালো। স্ট্রাইপ প্যাটার্নটিতে মাত্র দুটি রঙের বিভাগ থাকে। সেখানে ...!

vec2 uv = gl_FragCoord.xy / iResolution.xy;
float color = 0.0;
if(uv.x < .2 ||(uv.x >.4 && uv.x < .6) || (uv.x > .8 && uv.x <1.0 )) color= 1.0 ;
gl_FragColor = vec4(color,0,0,1);

এখানে চিত্র বর্ণনা লিখুন

কিন্তু আমরা যদি এন স্ট্রিপ এর নম্বর করতে চান?

আমি যেটি প্রদর্শন করার চেষ্টা করছি তা হ'ল যদি আপনি প্রচলিত প্রোগ্রামিং "লজিক" এর সাথে শ্যাডার প্রোগ্রামিংয়ের সাথে যোগাযোগ করার চেষ্টা করেন তবে আপনি ব্যর্থ হওয়ার সম্ভাবনা রয়েছে। যখন শ্যাডারের কথা আসে তখন এটি গণিত সম্পর্কে about

গণিতের কথা বললে, এমন প্যাটার্নটি কী যে সর্বাধিক "স্ট্রিপ" ধরণের সাদৃশ্যযুক্ত? অন্য কথায়, স্ট্রিপের মতো সমীকরণটি কী? হ্যাঁ. Y = sin (এক্স)। তবে আমাদের এক্স মানটি 0.0 ~ 1.0 থেকে শুরু করে যদি আমরা ওয়াই = পাপ (এক্স) ব্যবহার করতে চান তবে আমরা আমাদের x মানটি 0.0 ~ 6.28 (যা মোটামুটি 2 পিআই) থেকে শুরু করতে চাই

vec2 uv = gl_FragCoord.xy / iResolution.xy;
float x = uv.x * 2.0 *PI; 
float y = sin(x);
gl_FragColor = vec4(y,0,0,1);

এখানে চিত্র বর্ণনা লিখুন

একটি সমীকরণ দ্বারা উত্পন্ন প্যাটার্নের ক্ষেত্রে এখন আমাদের কাছে "স্ট্রিপ" রয়েছে have কেন আমাদের এই পদ্ধতির গ্রহণ করা উচিত? এটি কেবল দ্রুত হতে পারে না, তবে এটি এন সংখ্যার স্ট্রাইপের সংখ্যাগুলি "যদি" শর্তাবলী লেখার প্রয়োজনীয়তাও দূর করে। যদি আমরা একাধিক স্ট্রাইপ পেতে চাইতাম, তবে কেবলমাত্র সর্বাধিক এক্স মান আরও বাড়িয়ে আমরা প্যাটার্নটি প্রসারিত করতে পারি।

vec2 uv = gl_FragCoord.xy / iResolution.xy;
float x = uv.x * (2.0 *PI * 10.0); //ta dan!
float y = sin(x);
gl_FragColor = vec4(y,0,0,1);

এখানে চিত্র বর্ণনা লিখুন

আপনি বলতে পারেন যে এই শেডারটি প্রারম্ভিক শেডার থেকে নিখুঁত স্ট্রাইপ তৈরি করে না, তবে সত্যই, আপনাকে যা করার দরকার তা হল আরও উপযুক্ত ফিটনেস সমীকরণ লিখতে!

vec2 uv = gl_FragCoord.xy / iResolution.xy;
float x = uv.x * (2.0 *PI * 10.0);
float y = sin(x) / abs(sin(x) );
gl_FragColor = vec4(y,0,0,1);

এখানে চিত্র বর্ণনা লিখুন Weeee ~~~

পরবর্তী: কীভাবে একটি .েউয়ের স্ট্রাইপ প্যাটার্ন তৈরি করবেন।


1
ক্রোনো ট্রিগার মূলত এসএনইএসের জন্য প্রকাশ হয়েছিল, যার কোনও প্লেন ছিল না, তবে এটির মোড 7 ছিল । একই ধারণা, কেবল একটি প্রযুক্তিগত বিশদ।
বরফ ডিফিয়েন্স

2
শেডারগুলি কীভাবে তৈরি করা হয় তা বর্ণনা করে আপনি উত্তরে যুক্ত করতে পারেন? অন্যথায় লিঙ্কগুলি যদি কখনও মারা যায় তবে এই উত্তরটি বেশিরভাগই অকেজো।
মাইকেলহাউস

বাইট 5 এর সাথে একমত, কেউ এই জাতীয় জিএসএসএল শেডারগুলি তৈরি করতে জ্ঞানটি কোথায় শিখতে পারে এবং এটি লেখার সময় আপনার চিন্তা প্রক্রিয়াটি কী?
অক্সিসফ্ট

1
@ অক্সফট এই ধরণের শেডারগুলিতে traditionalতিহ্যবাহী হালকা প্রভাবের শেডারগুলির থেকে ভিন্নতা রয়েছে। তারা যেমন সুনির্দিষ্ট, তেমন অনেক সংস্থান নেই যা "এগুলি কীভাবে তৈরি করবেন" coverেকে রাখে। তবে এর অর্থ এই নয় যে আপনি উদাহরণগুলি খুঁজে পেতে পারেন না। আপনি শেডার দিয়ে কী করতে পারেন তার অনেক দুর্দান্ত উদাহরণ দেখতে shadertoy.com এবং অন্যান্য "মজাদার শ্যাডার" ওয়েবসাইট ব্যবহার করে দেখুন। এগুলি কীভাবে তৈরি করা যায় তা শিখতে আপনার জন্য সর্বোত্তম পদ্ধতি, (আমার মনে হয়) কেবলমাত্র সাধারণ শেডার অনুশীলনগুলি শিখতে হবে এবং ইন্টারনেটে পাওয়া "মজার শ্যাডার" উদাহরণগুলি অধ্যয়ন করা।
তোফু_ক্রেভিং_রিদস_ ব্লুড্রেগন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.