برمجة ال shader باستخدام ال CG الدرس الثامن

stencil هي ذاكرة تساعدك في عمل mask  للبكسل نتيجته ام انه يرسمه او يعمل discard له .
ذاكرة stencil في الغالب يوفر لكل بكسل هناك ٨ بتات تحتفظ بقيمة رقمية بحيث تستخدمها عمليات الرسم اللاحقة في المقارنة وتحديد ما اذا كان سوف يتم رسمه او لا . لقراءة المزيد … “برمجة ال shader باستخدام ال CG الدرس الثامن”

برمجة ال shader باستخدام ال CG الدرس السابع

Discard

بامكانك عمل discard للبكسل داخل برنامج ال fragment وهذا يؤدي الى عدم رسم البكسل .

fixed4 frag(VertexOutput vo):COLOR
{
	fixed4 col;
	if(vo.norm.z>=0)
		col = tex2D(tex,vo.tex);
	else
		col = tex2D(tex2,vo.tex);
				
	if(col.w<=0.5)discard;
	return col;
}

لقراءة المزيد … “برمجة ال shader باستخدام ال CG الدرس السابع”

برمجة ال shader باستخدام ال CG الدرس السادس

بعد الخروج من برنامج ال vertex هناك عمليات وحسابات تتم قبل الوصول الى برنامج ال fragment  ومن هذه العمليات ال culling and depth test
نكتب هذه الأوامر داخل ال pass   لقراءة المزيد … “برمجة ال shader باستخدام ال CG الدرس السادس”

برمجة ال shader باستخدام ال CG الدرس الرابع

في هذه المقالة سوف نتعرف على اهم عملية على ال vertices وهو استخدام مصفوفة ال transforming مع النقاط والمتجهات ومتجهات ال normal .
بالنسبة لكل كائن هناك مصفوفتان تساعدانه في حساب نقاطه ومتجهاته الاولى local to world وهي المصفوفة التي ضربناها بنقاطه ليصل للمكان الذي هو حاليا فيه وفي حال كان هناك local داخل local فانك تبدا بضرب المصفوفات بالنقطة من اصغر local الى ان تصل الى ال world ,  والثانية world to local وهي المعكوس الضربي للمصوفة local to world . لقراءة المزيد … “برمجة ال shader باستخدام ال CG الدرس الرابع”

برمجة ال shader باستخدام ال CG الدرس الأول

قبل ان نبدا في البرمجة علينا ان نفهم قليلا ال rendering pipeline وقد تحدث عنه مسبقا في هذا الدرس سوف افصل هنا في بعض الامور النظرية قبل ان نبدا البرمجة . لقراءة المزيد … “برمجة ال shader باستخدام ال CG الدرس الأول”