السلام عليكم
الكود عبارة عن سكريبت يوضع في محرر النصوص ا
تعتبر الكتابة و البرمجة بالتظليل Shader مثل الرسم ، وتعتمد الطريقة على استعمال اكواد الرياضيات
للبداية في استعمال OSL، يجب تحديد محيط برنامج البلندر
1. تعديل محرك الرندر بالسايكليز Set Render Engine to Cycles.
2. تفعيل OSL
OSL يعمل فقط في وضع CPU حاليا.
3. تعيين تخطيط (Set the Layout)
يمكنك ترتيبتخطيط كما تريد، ولكن أريد أن استخدام أحكام تكوين باستخدام وتعديل نفسي على النحوالتالي:
4. استعمل سكريبت العقد Node Script
كلما حددت سكريبت العقد في طريق OSL Shader ، يمكن بعدها تجميع شادر OSL. وهويدير مجموعة من اكواد النص في عقدة واحدة مع المدخلات والمخرجات للنود.
5. تسمية ملف OSL
ينصح إعطاء اسم لملف OSL على شكل : osl.*
البنية الأساسية ل OSL
تكون البنية الأساسبة لسكريبت osl على النحو التالي
[/FONT]
وهو على نحو قالب يستخدم في اليبندر
الغير المرئية: الداخلية والمتغيرات الشاملة
هناك بعض المتغيرات في OSL غير مرئية، ولكن وجودهم هناك. علينا أن نتذكر أننا لا نستطيع تغيير الواقع ما هو موجود بالفعل في الطبيعة، ولكن يمكن استخدامها ودفع لهم لخلق ورؤية FORCE.
بعض من "الغير المرئية" المستعملة
- نقطة السطحية P = وضعيات البكسل في XYZ
- الموجه أو النورمال Normal N
هذا هو كائن سمة السطحية والذي هو عادة عمودي على السطح، وهذا هو أيضا نوع من انوع المتجهات من 3 قيم.
- الاحداثيات U و V
وهذه أمثلة عن الشادر OSL
OSL: Mixer 2 Colors > 1 Color
OSL: Gradient X, Y, Z
يمكن تغيير المستوي X الى Y او Z بتغيير السطر الأخير
وهذا كود أخر:
وللمزيد في هذا الموضوع يمكن مشاهدة هذا الرابط
أو البحث في النت ة اليوتوب على الشادر OSL
الكود عبارة عن سكريبت يوضع في محرر النصوص ا
تعتبر الكتابة و البرمجة بالتظليل Shader مثل الرسم ، وتعتمد الطريقة على استعمال اكواد الرياضيات
للبداية في استعمال OSL، يجب تحديد محيط برنامج البلندر
1. تعديل محرك الرندر بالسايكليز Set Render Engine to Cycles.
2. تفعيل OSL
OSL يعمل فقط في وضع CPU حاليا.
3. تعيين تخطيط (Set the Layout)
يمكنك ترتيبتخطيط كما تريد، ولكن أريد أن استخدام أحكام تكوين باستخدام وتعديل نفسي على النحوالتالي:
4. استعمل سكريبت العقد Node Script
كلما حددت سكريبت العقد في طريق OSL Shader ، يمكن بعدها تجميع شادر OSL. وهويدير مجموعة من اكواد النص في عقدة واحدة مع المدخلات والمخرجات للنود.
5. تسمية ملف OSL
ينصح إعطاء اسم لملف OSL على شكل : osl.*
البنية الأساسية ل OSL
تكون البنية الأساسبة لسكريبت osl على النحو التالي
كود:
[LEFT][FONT=Courier New]#include "stdosl.h" [FONT=Courier New] [/FONT][FONT=Courier New]shader NAME_OF_SHADER[/FONT] [FONT=Courier New]([/FONT] [FONT=Courier New]// HEADER_DECLARATION_OF_INPUT_VARIABLES[/FONT] [FONT=Courier New]varType varName1 = value, [/FONT] [FONT=Courier New]varType varName2 = value, [/FONT] [FONT=Courier New]varType varName3 = value, [/FONT] [FONT=Courier New]output color Col = (0.8)[/FONT] [FONT=Courier New] [/FONT][FONT=Courier New])[/FONT] [FONT=Courier New] [/FONT][FONT=Courier New]{[/FONT] [FONT=Courier New]// BODY, FUNCTIONS[/FONT] [FONT=Courier New] [/FONT][FONT=Courier New]Col = .... ;[/FONT] [FONT=Courier New] [/FONT][FONT=Courier New]}[/FONT][/LEFT]
وهو على نحو قالب يستخدم في اليبندر
كود:
[LEFT]shader name() { }[/LEFT]
الغير المرئية: الداخلية والمتغيرات الشاملة
هناك بعض المتغيرات في OSL غير مرئية، ولكن وجودهم هناك. علينا أن نتذكر أننا لا نستطيع تغيير الواقع ما هو موجود بالفعل في الطبيعة، ولكن يمكن استخدامها ودفع لهم لخلق ورؤية FORCE.
بعض من "الغير المرئية" المستعملة
- نقطة السطحية P = وضعيات البكسل في XYZ
Point Surface (P) = positions of pixel in XYZ
والذي كما ترون في وقت لاحق يمكننا فصلها علي X، Y، Z عن طريق الوصول إلى [P [0]، P [1، و [P [2.- الموجه أو النورمال Normal N
هذا هو كائن سمة السطحية والذي هو عادة عمودي على السطح، وهذا هو أيضا نوع من انوع المتجهات من 3 قيم.
- الاحداثيات U و V
وهذه أمثلة عن الشادر OSL
OSL: Mixer 2 Colors > 1 Color
كود:
كود:
[LEFT][FONT=Courier New]shader mixer([/FONT] [FONT=Courier New] color ValueA = color(1,0,0),[/FONT] [FONT=Courier New] color ValueB = color(0,0,1),[/FONT] [FONT=Courier New] float Fac = 0.5,[/FONT] [FONT=Courier New] output color Color_Out = color(0.8)[/FONT] [FONT=Courier New])[/FONT] [FONT=Courier New] [/FONT][FONT=Courier New]{[/FONT] [FONT=Courier New] Color_Out = [B]mix(ValueA, ValueB, Fac)[/B];[/FONT] [FONT=Courier New]}[/FONT][/LEFT] [COLOR=#ff8c00][/COLOR]
OSL: Gradient X, Y, Z
كود:
كود:
[LEFT][COLOR=#ff8c00][FONT=Courier New]shader gradient([/FONT] [FONT=Courier New] [B]point Vector = P,[/B][/FONT] [FONT=Courier New] color ValueA = color(1,0,0),[/FONT] [FONT=Courier New] color ValueB = color(0,0,1),[/FONT] [FONT=Courier New] //float Fac = 0.5,[/FONT] [FONT=Courier New] output color Color_Out = color(0.8)[/FONT] [FONT=Courier New])[/FONT] [FONT=Courier New] [/FONT][FONT=Courier New]{[/FONT] [FONT=Courier New][B] float x = P[0];[/B][/FONT] [FONT=Courier New][B] float y = P[1];[/B][/FONT] [FONT=Courier New][B] float z = P[2]; [/B][/FONT] [FONT=Courier New] Color_Out = [B]mix(ValueA, ValueB, x)[/B];[/FONT] [FONT=Courier New]}[/FONT] [/COLOR][/LEFT] [COLOR=#ff8c00][/COLOR]
يمكن تغيير المستوي X الى Y او Z بتغيير السطر الأخير
وهذا كود أخر:
كود:
كود:
[LEFT][FONT=Courier New]shader stripes([/FONT] [FONT=Courier New] point Vector = P,[/FONT] [FONT=Courier New] color ValueA = color(1,0,0),[/FONT] [FONT=Courier New] color ValueB = color(0,0,1),[/FONT] [FONT=Courier New] //float Fac = 0.5,[/FONT] [FONT=Courier New] output color Color_Out = color(0.8)[/FONT] [FONT=Courier New])[/FONT] [FONT=Courier New] [/FONT][FONT=Courier New]{[/FONT] [FONT=Courier New] float x = P[0];[/FONT] [FONT=Courier New] float y = P[1];[/FONT] [FONT=Courier New] float z = P[2];[/FONT] [FONT=Courier New] Color_Out = mix(ValueA, ValueB, floor(sin(x))+1); // I give an offset value of 1 here[/FONT] [FONT=Courier New]}[/FONT][/LEFT] [COLOR=#ff8c00][/COLOR]
وللمزيد في هذا الموضوع يمكن مشاهدة هذا الرابط
أو البحث في النت ة اليوتوب على الشادر OSL
تعليق