موضوع: Raytracing (تصحيح ربط الصور)

ردود: 11 | زيارات: 5077
  1. #1

    Raytracing (تصحيح ربط الصور)

    ما هو الـ: Raytracing ؟
    .
    تعريف:
    سطوح الأجسام في الطبيعة تعكس الضوء الذي يسقط عليها بدرجات متفاوتة. بعضها تكون ملساء لدرجة أنها تستطيع عكس صورة لكل ما هو محيط بها ، لذلك فإن المرآة النظيفة مثلا تعكس كل الضوء الساقط عليها. برامج الـ Rendering التي يحاول مصمموها جعلها تخرج صور قريبة من الصور الواقعية، يمكنها محاكاة خاصية الأجسام الملساء باستعمال الـ : Raytracing.
    رغم أن الـ Raytracing غير مستخدم بصفة منتشرة في أكبر أفلام الـ 3D، إلا أنه متوفر في كل برامج الـ Rendering تقريبا. يكفي أن تشغل هذه الخاصية الموجودة عادة ضمن خصائص الخامات Materials، ثم جعل الـ Renderer يقوم بالباقي.
    [.


    لبداية هذه العملية، يقوم أي برنامج Raytracer بتقسيم مجال رؤية الكامراCamera إلى جدول
    من البيكسل Pixelsحسب دقة Resolution الصورة التي تريد أن تحصل عليها. لكل بيكسل، ينطلق شعاع من الكامرا إلى أن يسقط على أول نقطة من الأجسام الموجودة كما في الشكل رقم 1.
    باستخدام الـantialiasing ، أكثر من شعاع يستخدم لكل بيكسل، مما يؤدي إلى رفع الوقت اللازم لإخراج الصورة.
    حين يصل الشعاع إلى الجسم، يجب التحقق من سطح هذا الجسم إذا كان يعكس Reflective أو يكسر Refractive أو ربما يستقبل الظلال الآتية من حبس أجسام أخرى للضوء. بعد ذلك يتم حساب اللون الصحيح الذي يجب أن يعطى لسطح الجسم بحسب الإضاءة و الخامات المستعملة، فإذا كان السطح عاكسا، ينطلق شعاع ثاني منه إلى ما يجاوره من فضاء باحثا عن أي جسم ثاني يعكسه على النقطة التي انعكس منها. إذا وجد أن سطح هذا الجسم عاكس بدوره، ينطلق مرة أخرى شعاع إلى مكان آخر بنفس الطريقة الأولى. و هكذا إلى أن يتم حساب كل بيكسل في الصورة .
    بسبب هذا التعقيد الكبير في طريقة حساب الصورة، لم يجد الـ Raytracing طريقه إلى الاستخدام في المشاريع الكبيرة أين تجد عدد هائل من الـ Polygons . لا يوجد برنامج Rendering يستطيع التعامل مع مثل هذه الكمية الكبيرة من المعلومات، بالإضافة إلى أن ذاكرة الكمبيوتر RAM غير كافية مهما كبرت لإتمام كل هذه العمليات. هذا دون الحديث عن الوقت الكبير اللازم للـ Rendering و الذي يجعل المخرجين و المنتجين ينصرفون عنه إلى غيره من البدائل.

    أعلم أن هذا التعريف معقد بعض الشيء، لكنه جدير بالفهم لأنه لا يمكنك من التحكم بالصورة التي تريد إخراجها إلا إذا فهمت طريقة حساب الـ Renderer لها.

    المحيط المجاور للأشياء:
    إذا كنت تريد القيام بـRender لجسم وحيد لا شيء معه فلا تجعله عاكسا باستخدام الـRaytracing ، لأن ذلك لن يزيده إلا ظلمة و سواد (إذا كن الفراغ الموضوع فيه أسود). إنك تجد هذا الخطأ يقع فيه كثير من المبتدئين. تفحص بدقة محيط الجسم بحيث أنه لا يوجد أية فراغ قد يظهر في الانعكاس.
    الكثير منا لديهم عادة بناء غرف 3D فقط بـ 3 جدران حتى نتمكن من التحكم بالكامرا من جهة الجدار الناقص. هذا قد يسبب مشكلة في الانعكاس الظاهر على سطح الكرة في الشكل2 ، فيظهر الجزء الفارغ من المشهد Scene مساحة سوداء.
    .

    لتجنب هذه النتيجة غير المرغوب فيها، اجعل غرفتك من 4 جدران و حول خاصية الجدار الموالي للكامرا Single Sided (أي لا يمكن رؤيته إلا من جهة واحدة)، هذا أفضل من حذف الجدار كاملا. بعض البرامج تسمح لك بجعل الأجسام لا تظهر إلا في الانعكاسات دون أن تراها في الصورة(Secondary visible) هذا أيضا يحل هذه المشكلة .
    اجعل المحيط الذي تستخدمه في مشاهد كهذه غنيا بالأجسام التي ستظهر في الانعكاسات بما في ذلك تلك التي لن تظهر في الصورة. يمكنك تصميمها ببساطة شديدة و لا تستخدم فيها عدد كبير من الـ Polygons ، لأن الأجسام الظاهرة في الانعكاسات لا تظهر كما هي، و عين المشاهد لا تستطيع ملاحظة عيوب الـ Modeling فيها، خصوصا إذا كانت الأشكال العاكسة تحتوي على انحناءات كثيرة.

    الانعكاسات المخففةSoft Reflections :
    أغلب الأجسام الموجودة في الواقع ، سطوحها لا تعكس ما يحيط بها بطريقة مثالية. لذلك قد تبدو صورك التي تحصل عليها باستعمال الـ RayTracing بعيدة عن الواقع. لذلك صممت طريقة في بعض البرامج لتجعل الانعكاسات مخففة و مضببة Soft كما في الجزء 1 من الشكل 3.
    .[.

    هذه التقنية قد تزيد كثيرا من واقعية الصورة، لكن هذا له ثمنه، ألا و هو الوقت الكبير الذي يلزمها لحساب الصورة النهائية. الكثير يلجئون إلى حل آخر عن طريق إخراج الانعكاسات في Render ثم باقي الصورة لوحدها، بعدها تخفف و تضبب الصورة في برنامج 2D . أو هنالك طريق أخرى بأن تطبق بعض الـ Bump على الجسم العاكس فتخفف بذلك درجة عكسه للأجسام.

    الظلال:
    في أغلب برامج الـ 3D توجد نوعين من الظلال:
    - Raytraced
    - Depth Mapped
    بواسطة الـ Raytracing يمكن توليد الظلال الدقيقة تماما و التي ترسم لك مسقط الجسم على الجسم التي ستسقط عليه بواسطة بعث أشعة من مصدر الضوء إلى منتهاها. صحيح أن هذه التقنية تعتبر بطيئة بالنسبة إلى الطريق الأخرى، إلا أنها قد تكون الحل الأخير في كثير من الحالات.
    حين تصطدم أشعة الضوء بجسم ما فإنه يمتص جزءا منها، ثم إذا كان الجسم شفافا يترك بعض الضوء يمر في طريقه. ظل الجسم يكون أسود تماما إذا لم يكن هذا الجسم فيه نوع من الشفافية، بينما يضاء قليلا في الحالة الأخرى. ( الشكل 4)
    .[I.
    تستخدم تقنية Raytracing في محاولة الحصول على ظل خفيف جدا بواسطة سطح باعث للضوء Area Light . الصورة في الشكل 5 توضح الفرق بين ظل الـ Area Light و الظل المحصل عليه بتضبيبBluring ظل الـ Depth Map .
    .

    لظل الـ Raytracer فائدة كبيرة، ألا وهي نقل كل التفاصيل الدقيقة للأجسام على المساحات المستقبلة للظل. لذلك تعتبر مثالية للاستعمال مع الأجسام الصغيرة جدا دون خشية عدم ظهور ظل لها كما يحدث دائما مع ظلال D-Map . هذه الأخيرة، متعلقة بالدقة Resolution التي تختارها لها أنت. قد تجد نفسك تزيد من هذه الدقة حتى تحصل على ظل دقيق محدد لمعالم الأجسام، ربما ترفع درجتها إلى ما يفوق: 1024، عندها يجب أن تتحول إلى ظلRaytraced لأنه لن يستهلك ذاكرة أكبر و هو مستقل كذلك عن الدقة Resolution.

    الأجسام الشفافة تكسر أشعة الضوء:
    حين تضع جسم في مشهد، و كان هذا الجسم شفافا، أي تستطيع أن ترى عبر سطحه ما هو موجود وراءه، يجب أن تفكر في ما يعرف بظاهرة الانكسار Refraction. لحسن الحظ فإن برنامج الـ Render الذي يقوم بالـ Raytracing قادر حلى محاكاة هذه الظاهرة الطبيعية ، و هذا بنفس الطريقة التي شرحناها حول كيفية حدوث الانعكاسات. العامل المهم الذي يؤثر على الانكسار يسمى : IOR أو Index Of Refraction ، أي مؤشر درجة الانكسار. نفس هذا المؤشر تجده في العدسات الزجاجية المستخدمة في صنع النظارات الطبية أو التلسكوبات و غيرها.
    إذا كان المؤشر مساويا لـ :1 فإن السطح لا يكسر الضوء؛ أما إذا رفعة قيمته فسترى الانكسار يزيد كما على الشكل 6.
    .
    هناك قيم تقريبية تساعدك في اختيار قيمة المؤشر حسب المادة التي تريد محاكاتها. مثلا الزجاج يعطى دائما قيمة 1.44، الكريستال 2.06، الماء 1.33. لكن التجربة و الملاحظة هي التي تجعلك تحدد هذه القيمة، ثق في عينك و حسك الفني فقط.

    عمق الـ Raytrace:
    من أخطر المشاكل التي قد تواجهها في الانعكاسات هو وقوعك في حلقة مفرغة من الحسابات غير المتناهية. مثلا، لو أنك صنعت مشهد لمرآتين متقابلتين. في هذه الحال، ستظهر كل مرآة صورة الأخرى، و التي بدورها ستظهر المرآة الأولى التي عليها صورة الثانية... دوخة؟ هذه العملية غير متناهية. لوضع حد لهذا الحساب الأبدي، تحتاج إلى تحديد عمق الحساب Raytrace Depth الذي يحدد عدد المرات التي ينطلق فيها شعاع الـ Raytrace . لكن حين تظهر لك مساحات سوداء على السطوح العاكسة أو الشفافة، يجدر بك تعديل العمق حتى تحل هذه المشكلة.

    خاتمة:
    كما قلنا، عملية الانعكاس و الانكسار لسطح جسم ما متعلقة بالمحيط الذي يوضع فيه. لذلك يحسن بك أن تراقبه جيدا حتى تعرف تماما ما يؤثر عليه، لتتمكن من الحصول على النتيجة التي ترغب بها من جهة، و تجد الحل الملائم للمشاكل الطارئة.
    إن الـ Raytracing تقنية رائعة فعلا، لكن ثمن استعمالها غال جدا بالنسبة إلينا، لأن ثمنها هو الوقت الكبير في الحساب. لذلك تجد أن أكبر منتجي أفلام الـ Animation لا يصممون مشاهدهم بناء عليها، بل لا يلجئون إليها إلا للضرورة القصوى. صحيح يمكنك تحاشي استعمالها ببدائل أخرى لكن لا يمكن الاستغناء عنها تماما. مع التطور الكبير في الكمبيوتر هذه السنوات الأخيرة، و الله سبحانه وحده يعلم إلى أين سيصل هذا التطور في المستقبل إن شاء، و الزيادة الكبيرة في سرعة الكمبيوترات، و انخفاض أسعارها، لا بد أن الـ Raytracing سيصبح أكثر شعبية في كل الميادين.


  2. #2
    مشكور أخوي

    جزاك الله خير

  3. #3

    ـ

    مشكوررررر اخى لكن الصوره فى الشكل 3 لا تظهر.
    MAHMOUD.MAX




  4. #4
    عضو متميز
    صور رمزية JUST MAYA
    تاريخ التسجيل
    Jul 2002
    المنطقة
    الرياض
    العمر
    30
    ردود
    1,389
    ما شاء الله عليك ..

    مجهود كبير بذلته واتمنى من المشرفين يضعوه في الصفحة الرئيسية حتى يستفيد الجميع !

    الشكل رقم 3 لازم تعدله لأن الوصلة ما تشتغل

    بالنسبة للشكل أربعة بأحاول أعمل مثله ..

    وكذلك ( إذا كان المؤشر مساويا لـ :1 فإن السطح لا يكسر الضوء؛ )

    أنت تقصد 1 أو 0 ؟

  5. #5
    عضو متميز
    صور رمزية eech55
    تاريخ التسجيل
    Jun 2003
    المنطقة
    الإمارات
    ردود
    1,358
    مشكور على مجهودك. معلومات قيمة..
    [ maya status : loaded successfully ]
    [ studio tools status : loaded partially ]
    [ help me : general questions about softimage xsi - click here ]
    [ help me (1) : general questions about image studio - click here ]
    [ help me (2) : general questions about studio tools - click here ]
    [ last updated : 8 - aug - 2004 ]

  6. #6

    شكرا

    أعتقد أن الصورة 3 تغمل الآن.
    أشكر الإخوة على تشجيعهم، هذا ما يدفعني لمحاولة الكتابة في مواضيع أخرى. و أرجو كما إقترح الأخ من المشرفين أن يوضع الموضوع في الصفحة الرئيسة حتى تعم الفائدة باذن الله. حاولت حفظ النص على شكل HTML لكن ليس عندي برنامج يدعم العربية.
    بالنسبة لسؤال الأخ Just Maya :
    المؤشر- في مايا و أغلب البرامج - يكون 1 إذا لم تكن تريد انكسار.

  7. #7

    تصحيح

    وقع خطأ مني في الشكل رقم 6، كنت وضعت مؤشر :IOR مساويا لصفر0 حتى أبين أنه لا يوجد انكسار، لكني استدركت ذلك و صححته الى واحد 1 ، فهي القيمة الصحيحة.
    ملاحظة:
    كنت قد كتبت أني استفدت كثير من مادة هذا الموضوع، و ربما ترجمت كثير من الجمل من كتاب Disgital Lighting and Rendering لمؤلفه : Jeremy Birn . أردت فقط أن أذكر حتى لا يلتبس الأمر على البعض، أني نشرت الموضوع بعد استشارة المؤلف حيث لم يبد اعتراضا على الإقتباس من كتابه.

  8. #8
    عضو متميز
    تاريخ التسجيل
    Jul 2002
    ردود
    9,832
    lazzhar
    أحسنت أخي .
    The Unknown Person

  9. #9
    عضو متميز
    صور رمزية blue_light
    تاريخ التسجيل
    Apr 2003
    المنطقة
    Palestinian in Ksa
    العمر
    37
    ردود
    1,177
    GrEaT wOrK MaN
    KeEp iT uP
    Demo Reel 2007
    http://maxforums.net/showthread.php?t=108767

    بحر الرياض ::: رؤية خيالية
    Matte Painting

    http://www.maxforums.net/showthread.php?t=93396

    samiattar@hotmail.com



  10. #10
    عضو فعال
    تاريخ التسجيل
    Aug 2001
    المنطقة
    السعودية
    العمر
    39
    ردود
    216

    ماشاء الله عليك

    يا لروعه ما شفت موضوع عربي يتكلم بهالتفاصيل من قبل أتمنى تتطور الأمور بكم ان شاء الله..
    أخي العزيز واضح أنه لك باع في الثري دي ما شاء الله، بالتوفيق يا ريت تورينا أعمال لك لأن صراحه متشوقين لرؤيتها...

    ديزاينر2
    بالصبر تنال المراد

  11. #11

    شكرا

    كلامك يشجعني على المضي في كتابة موضوع آخر. هذه المرة ان شاء الله ، عن الإضاء Lighting.
    أما عن أعمالي، فسأنشر قريبا عدد منها. مشكور لسؤالك عنها أخي.

Bookmarks

قوانين الموضوعات

  • لا يمكنك اضافة موضوع جديد
  • لا يمكنك اضافة ردود
  • لا يمكنك اضافة مرفقات
  • لا يمكنك تعديل مشاركاتك
  •  
  • كود BB مفعّل
  • رموز الحالة مفعّل
  • كود [IMG] مفعّل
  • [VIDEO] code is مفعّل
  • كود HTML معطل