আমি একটি জিএলএসএল শেডার বাস্তবায়নের চেষ্টা করছি যা বিশেষ আপেক্ষিকতা লরেন্টজ ট্রান্সফর্মেশন বুঝতে সাহায্য করে।
আসুন দুটি অক্ষ-সংলগ্ন নিবিড় পর্যবেক্ষক O
এবং O'
। পর্যবেক্ষক গতিবেগ সহ O'
গতি আর্ট পর্যবেক্ষক O
হয় v=(v_x,0,0)
।
O'
স্থানাঙ্কের ক্ষেত্রে বর্ণিত হলে , একটি ইভেন্ট P' = (x',y',z',ct')
স্থানাঙ্কগুলিকে রূপান্তরিত করে(x,y,z,ct)= L (x',y',z',ct')
যেখানে এল হল 4x4 ম্যাট্রিক্স যার নাম লোরেন্টজ ট্রান্সফর্মেশন যা আমাদের পি এর ইভেন্ট পি'র স্থানাঙ্কগুলি লেখতে সহায়তা করে O
।
(বিশদগুলির জন্য দেখুন http://en.wikedia.org/wiki/Lorentz_transformation#Boost_in_t__x- দিকনির্দেশ )
আমি একটি প্রথম প্রাথমিক ভার্টেক্স শেডার লিখেছি যা লোরেন্তজ রূপান্তরটি প্রয়োগ করে প্রতিটি প্রান্তে বেগ পেয়েছে, তবে আমি সঠিকভাবে কাজ করার রূপান্তরটি পেতে পারি না।
vec3 beta= vec3(0.5,0.0,0.0);
float b2 = (beta.x*beta.x + beta.y*beta.y + beta.z*beta.z )+1E-12;
float g=1.0/(sqrt(abs(1.0-b2))+1E-12); // Lorentz factor (boost)
float q=(g-1.0)/b2;
//http://en.wikipedia.org/wiki/Lorentz_transformation#Matrix_forms
vec3 tmpVertex = (gl_ModelViewMatrix*gl_Vertex).xyz;
float w = gl_Vertex.w;
mat4 lorentzTransformation =
mat4(
1.0+beta.x*beta.x*q , beta.x*beta.y*q , beta.x*beta.z*q , beta.x*g ,
beta.y*beta.x*q , 1.0+beta.y*beta.y*q , beta.y*beta.z*q , beta.y*g ,
beta.z*beta.x*q , beta.z*beta.y*q , 1.0+beta.z*beta.z*q , beta.z*g ,
beta.x*g , beta.y*g , beta.z*g , g
);
vec4 vertex2 = (lorentzTransformation)*vec4(tmpVertex,1.0);
gl_Position = gl_ProjectionMatrix*(vec4(vertex2.xyz,1.0) );
এই শেডারটি প্রতিটি ভার্টেক্সে প্রযোজ্য এবং অ-রৈখিক লরেন্টজ রূপান্তর সম্পাদন করা উচিত, তবে এটি যে রূপান্তরটি সম্পাদন করে তা আমি প্রত্যাশা করা থেকে স্পষ্টভাবে পৃথক (এই ক্ষেত্রে এক্স-অক্ষের উপর একটি দৈর্ঘ্য-সংকোচন)।
কেউ ইতিমধ্যে 3 ডি ভিডিওগ্যামের জন্য বিশেষ আপেক্ষিকতা শেডারে কাজ করেছেন?
O
(0,0,0) রয়েছে নিচে z- অক্ষ খুঁজছেন যখন পর্যবেক্ষক O'
গতি wrt হয় O
বেগ সঙ্গে v_x
এবং অবজেক্টের জন্য বর্ণনা O'
বাকি আছে। আমি জানি যে এই ভার্টেক্স শেডারে রূপান্তরটি কেবলমাত্র शिरোখণ্ডের জন্য প্রয়োগ করা হয় যাতে লাইনের বিকৃতি হারিয়ে যায় তবে আমি কেবল এটি বুঝতে এবং প্রথমে এটি তৈরি করতে চাই। দেখে মনে হচ্ছে যে গেমটি বহুবচন ইতিমধ্যে এই ধরণের রূপান্তর করেছে, তবে আমি যে শেডারটি পেয়েছি তাতে আকর্ষণীয় কিছুই হয় না, কারণ আমি একই ফলাফল পেয়েছি! bit.ly/MueQqo