الشبكة العربية لمطوري الألعاب

موهوب  16mofed84 مشاركة 1

السلام عليكم
كيف يمكن الحصول على الpost perspective space ؟
اتمنى ان اجد رد لانه هذا السؤال عده اشهر وانا بفتش على جواب و بفكر في طرق ولم تنجح
الذي هو :

1 ........................................................2

3..........................................................4
الصوره الرابعه نفس الصوره الثانيه (بدون فقد الدقه) مع العلم ان الذي قام بعمل هذه الصور عملها على(512X512)!

مبتدئ  mohamed samir مشاركة 2

أريد المساعدة ولكني لا أفهم ماذا تقصد بالضبط ؟

3D-Artist/Programmer
http://www.youtube.com/watch?v=DvHvsfrQGyc
http://www.youtube.com/watch?v=PBSeyo9WHwM

موهوب  16mofed84 مشاركة 3

اولا ..اعتذر عن اسئلتي الغريبه (او انها عاليه المستوى و الله اعلم)
ثانيا ..انت تلاحظ في الصوره الثانيه انها مأخوذه من مسقط عادي (perpective عادي)...بس في الصوره الثالثه عباره عن تقريب للصوره الناتجه وليس للعالم بدون فقدان دقه الصوره

الصوره ثانيه القانون المعروف :

hlsl
output.Position = mul(input.Position,xWorldViewProjection);

 فكيف نحصل على الصوره الثالثه ؟!

خبير  سلوان الهلالي مشاركة 4

السلام عليكم،

كما يبدو لي، الصورة 3، هي من منظور مصدر الضوء وتستخدم لاحتساب الظل في المشهد.
ما الذي تنوي فعله بالضبط؟

موهوب  16mofed84 مشاركة 5

وهو الذي اريده ما هي معادله هذا المنظور ؟

خبير  سلوان الهلالي مشاركة 6

تجد هنا وصف جيد للعملية:
http://en.wikipedia.org/wiki/Shadow_mapping


هنالك طرق عديدة كما ترى في نهاية صفحة ويكيبيديا حول الموضوع، ولكن من وجهة نظر بسيطة لديك موقع الضوء واتجاهه، يمكنك بناء مصفوفة عرض مناسبة واستخدامها لإظهار المشهد للحصول على معلومات العمق للسطوح بشكل إكساء (خريطة الظل كما تسمى)، ثم إظهار المشهد بشكل اعتيادي، والمقارنة بينهم لمعرفة اي البكسلات تقع في الظل باستخدام مصفوفات للتحويل بين فضاء الضوء والمشهد. (من الافضل استخدام المظللات shaders للقيام بالمقارنة)


ما اراه في الصور التي وضعتها هي طريقة لتحجيم منظور الضوء بحيث يتناسب مع موقع الكاميرا الحالي بشكل يسمح بالحصول على اعلى دقة لخريطة الظل لأن دقتها محدودة.

موهوب  16mofed84 مشاركة 7

هذه الطريقه العاديه ..و قد نجحت معي و نفذتها ..

هذه تنجح مع مشهد بسيط ,,لكن بنسبه للمشاهد المعقده و الكبيره (مثل ظل بنايه كبيره و ظل شجره ..

على كل يبدو انه جائتي فكره (لا اعلم  ان كانت هي المتبعه) :


float4 rPos = mul(input.Position,xWorldViewProjection)
//rPos.xy = screen position [-1 ... 1]
//depth = rPos.z/rPos.w
then multiply (rPos) by matrixLookAt( (light position - camera target), (0,0,0),(0,1,0)) 
                   * perspective(Angle,....)

سأجرب ...

شكرا لكم جميعا

مبتدئ  mohamed samir مشاركة 8

بالنسبة لي هذه الصورة تسمى Z-Depth pass و هي أحد الطبقات التي يحسبها المعالج عند معالجة الصورة النهائية
وهي تعبر عن مدى قرب و بعد كل مجسم عن الكاميرا، فكلما زادت شدة اللون الأبيض كان المجسم أقرب إلى الكاميرا و كلما ذهب اللون إلى
الأسود زادت المسافة بين هذا المجسم و الكاميرا و هي تستخدم في حساب الـ Fog  و تأثيرات الكاميرا مثل Depth of field وغيرها من التأثيرات الخاصة.
كما تستخدم في ترتيب و إظهار المجسمات عند المعالجة.
وهي تحسب عن طريق إطلاق شعاع من الكاميرا و عند إصطدام هذا الشعاع بمجسم يقوم المعالج بحساب طول الشعاع و على حسب طوله من النسبة الكلية يقوم بتخصيص لون لهذه البكسل و الذي يعبر عن مدى قرب أو بعد هذا المجسم عن الكاميرا.

أتمنى أن أكون ساعدتك.

3D-Artist/Programmer
http://www.youtube.com/watch?v=DvHvsfrQGyc
http://www.youtube.com/watch?v=PBSeyo9WHwM

موهوب  16mofed84 مشاركة 9

يبدو انكم لا تفهمونني ..الرجاء القراءه بتمعن -0ز0-
الصوره 2  تختلف عن الصوره 3
الصوره 2 هي رسم للعالم من مكان الضوء بدون اي تعديل

الصوره 3 لاحظ كأنها طبقه وليست 3D  ..اي او غيرت اتجاه المظور ستبقى اسقاط من مكان الضوء

الذي اريده كيف اجد هذه المعاده التي تجعلها كأنها طبقه واحده

انظر الى هذا الفيديو (الصوره الموجوده في الزاويه العليا)

موهوب  16mofed84 مشاركة 10

الحمدلله بعد كل البحوثات الي عملتها
و بعد فقدان الامل الكلي.

وجدت الجواب في موقع ياباني اضافه الى مشروع XNA  ..وترجمته وهو في المرفقات ../\ في الاسفل /\ ..وشكرا للجميع