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

ممكن مساعدة في Drawindexedprimitive

بدأه 852147 في 8 أغسطس 2009 · 1 رد · 2,050 مشاهدة · في DirectX
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذه مشكلتي بدون اطلالة

Device->DrawIndexedPrimitive ( D3DPT_TRIANGLELIST  ,0 , 0 , (Width*Width) , 0 , Width*Width*2);

بوضع Width=180 يعمل بشكل طبيعي ولكن عند تغييرWidth الى عدد أكبر من 180 مثل 181 أو 190 لايعمل فما المشكلة وهل ذلك يعني أن النهج لايستطيع أن يصير أكثرمن 180*180 شكل

علما أن Vertex Buffer وIndex Buffer معرفة كما يلي .

D3DVERTEX *M = 0; 
int a = -1 ; 


	for ( int y = 0 ; y<Width ; y++ )
	{
		for ( int x= 0 ; x<Width ; x++ )
		{
			a++ ; 
			M[a].x = (float) x;
			M[a].y = (float)HeightMap[x][y]/10.0f; 
			M[a].z = (float)y ; 
			M[a].U = (float) x/100 ; 
			M[a].V = (float) y/100; 

		}


}


//// Idex Buffer 
 WORD *IndexDate = 0  ; 


 for ( int y = 0 ; y<Width*Width; y++ )
	{


	for ( int g = 0 ; g<Width-1 ; g++ )
	{
		if ( y>=Width*(g) && y<(Width-1)+Width*(g) )
		{

		*IndexDate ++ = y;
		*IndexDate ++ = y+1+Width ;	
         *IndexDate ++ = y+1 ;


		*IndexDate ++ = y ;
		*IndexDate ++ = y+Width ;
		*IndexDate ++ = y+1+Width ;





		}
	}






	}
#2

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

لم أدقق في حسابات الرؤوس والفهارس، ولكن وددت أن اذكر أن بإمكانك الحصول على العدد الأقصى الممكن من الرؤوس الذي تدعمه بطاقة العرض لديك عن طريق D3DCAPS9:

  • MaxPrimitiveCount: أكبر عدد من الأشكال (المثلثات في هذه الحالة) التي يمكن رسمها في نداء واحد لـ DrawPrimitives.
  • MaxVertexIndex: أكبر فهرس ممكن عند استخدام ذاكرة الفهارس.

كم قيمة كل من العنصرين لديك؟ وما طبيعة الخطأ الذي يحصل؟

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