الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكله فى الرسم بال OpenGL Render

بدأه sookkaa في 11 نوفمبر 2010 · 3 رد · 1,091 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

ازاى اقدر اتحكم فى الصوره بعد الرسم على الفورم

زى مثلا فى ال 3D Max فى حاجه بختارها اسمها Reandring بعد ما ارسم على الماكس بختار ده بيخلى الصوره المرسومه زى الواقع بالضبط بيخليها طبيعيه

ازاى اعمل كده بال OpenGL ياريت اللى عارف الرد يقولى عليه

#2

وعليكم السلام ورحمة الله و بركاته ،

الأمر مختلف قليلاً ،

في OpenGL ، وتحديداً في تطبيقاتك التي تنفذها ، أنت تعمل في الغالب في بيئة تسمّى at run-time ، يعني مثل الألعاب ، عندها Rendering هي عملية عادية لا تدخل فيها حسابات " معقدة " .

في برامج التصميم والنمذجة مثل 3d max ، أثناء التصميم أنت تعمل على مستوى أدنى من الدقة ، وعند عمل rendering ، فأنت أعطيت المعلومات الأساسية التي يحتاجها البرنامج للقيام بعملية التصيير . لا أعرف كيف تتم العملية ، ولكن تستطيع تشبيهها بعملية Ray Tracing ( تتبع الأشعة ) ، بحيث يستهلك وقت أطول في تحويل تلك المعلومات لصورة تبدو حقيقية . عملية Ray Tracing ، لها خوارزمياتها ، ولكن عيبها أنها تستهلك وقت أطول ، و لذلك لا نستخدمها في التطبيقات التي تحتاج إلى سرعة مثل " الألعاب " أو المحاكيات العلمية .

أنا هنا لا أقول لك أن أي مصيّر Renderer في 3D Max فأنه عبارة عن Ray Tracer .. بل هو أحد الاحتمالات . هناك احتمالات أخرى ، وهي أن كثيراً من التأثيرات ، لا تظهر بشكل كامل أثناء التصميم ، ولا تظهر لك إلا بعد عملية Rendering ، فمثلاً :

تستطيع من أن تصنع برنامج للنمذجة Modeling ، لرسم مكعب .. ولكن تهمل اظهار تأثير الإضاءة بشكل حقيقي .. وتكتفي برسم دائرة صفراء توحي للمستخدم بأن هناك ضوء .. بعد عملية Rendering ، تقوم بتفعيل الإضاءة وتحميل Shader المناسب ..

السبب ؟

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

الخلاصة :

لا أعرف بالظبط كيف تعمل تلك البرامج ( 3d max ) ، فلكل برنامج طريقته ، ولكن ما سبق هو تخمين لما يمكن أن يحصل . ولكن أنت كمبرمج رسوميات ، لا تلتفت لهذه الأمور لأنها متقدمة ، ويجب أن تكمل الأساسيات ، فمن المستحيل أن تحتاج لـ Renderer من نوع خاص .. وأنت لا زلت في بداية الطريق . في الغالب لن تحتاج لهذه الأمور إلا إذا أردت أن تصنع شيء شبيه بـ 3d max أو Blender .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

شكرا يا اخ شمرى على ردك الجميل

بص هوا اللى انت قولته ده فعلا اللى بيحصل مش دى المشكله المشكله انا تقريبا خلصت البرنامج اللى شغال عليه ومش فاضلى غير عملية التصيير اللى انا بقول عليها دى

ياريت لو تعرف طريقه بسيطه لعملية التصيير فى الاوبن جى ال تقول عليها ولك جزيل الشكر

#4

لايوجد شيء اسمه تصيير في تطبيقاتنا العادية ..

البرنامج الذي تشاهده هو النتيجة النهائية ،

3d max يصيّر الناتج النهائي إلى صورة بدقة عالية ، ولكن هذا لوحده مشروع يحتاج منك لسنين ! و نحن لا نقوم بهذا .. نحن نصنع تطبيقات مثل الألعاب و البرامج الرسومية و النمذجة والمحاكاة .. وكلها لا تستخدم آلية التصيير التي تتحدث عنها ، ونحن لا نحتاج لها أصلاً .

إن أردت صورة لنموذج بدقّة عالية فاستخدم تلك البرامج مباشرة مثل 3d max ، ولا تتعب حالك مع OpenGL .

أستطيع أقول ، إنسَ هذا الموضوع تماماً ، فهو خارج قدراتنا .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

مواضيع مشابهة