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

كيف أقوم باكساء كل جسم وحده

بدأه 852147 في 7 أكتوبر 2008 · 10 رد · 2,234 مشاهدة · في DirectX
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السرم عليكم

قمت بانشاء

شكلين

box و

teapot

وعندما أقوم باكساء الجسم بوكس اجد ان الابريق تم اكساؤه اسضا بالرغم

ان لدي

texture1 للبوكس

للابريق texture2

يعني اني عرفت اكساءين كل اكساء خاص بجسم

ممكن مساعدة وشكرا

#3
HRESULT Object ()
{
	if ( FAILED ( D3DXCreateTextureFromFile ( Device , "wood.dds" , &Texture2 )))
	{
		return E_FAIL ; 
	}	

	if ( FAILED ( D3DXCreateBox ( Device , 5 , 5 , 5 , &Mesh2 , &Buffer2)))
	{
		return E_FAIL ; 
	}


	Device->SetTexture ( 0 , Texture2 );

	return S_OK ;

}

HRESULT O1 ()
{
	if ( FAILED (  D3DXCreateTeapot ( Device , &Mesh , &Buffer )))
	{
		return E_FAIL ; 
	}

if ( FAILED ( D3DXCreateTextureFromFile ( Device , "wood.dds" , &Texture )))
	{
		return E_FAIL ; 
	}	

Device->SetTexture ( 0 , Texture );


}

VOID Render ()

{
Device->Clear ( 0 , NULL , D3DCLEAR_TARGET ,D3DCOLOR_ARGB(250,0,0,200) ,4.0f ,0);

	if ( SUCCEEDED ( Device->BeginScene ()))
	{

		Mesh->DrawSubset (0);
		Mesh2->DrawSubset (0);
		Camera();
		Device->EndScene ();
	}
	Device->Present ( NULL , NULL , NULL , NULL );

}

تم تعديل هذه المشاركة بواسطة 852147 في 7 أكتوبر 2008 في 14:44

#4

اذا كان كل من texture و texture1 هما مؤشران لنفس الاكساء وهو wood.dds فمن الطبيعي ان يظهر كل من الشكلين بنفس الاكساء

#5

:lol: :wacko:

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#6

لا يأخي لقد أخطأت في الكتابة فقط

فهما يشران الى عنصرين مختلفين

الأول wood .dds

الثاني water.dds

أخطأت في كتابة الكود السابق فقط أرجو المعذرة

وهاو الكود صحيح كاملا ان شاء الله

HRESULT Object ()
{
if ( FAILED ( D3DXCreateTextureFromFile ( Device , "water.dds" , &Texture2 )))
{
return E_FAIL ;
}

if ( FAILED ( D3DXCreateBox ( Device , 5 , 5 , 5 , &Mesh2 , &Buffer2)))
{
return E_FAIL ;
}


Device->SetTexture ( 0 , Texture2 );

return S_OK ;

}

HRESULT O1 ()
{
if ( FAILED ( D3DXCreateTeapot ( Device , &Mesh , &Buffer )))
{
return E_FAIL ;
}

if ( FAILED ( D3DXCreateTextureFromFile ( Device , "wood.dds" , &Texture )))
{
return E_FAIL ;
}

Device->SetTexture ( 0 , Texture );


}

VOID Render ()

{
Device->Clear ( 0 , NULL , D3DCLEAR_TARGET ,D3DCOLOR_ARGB(250,0,0,200) ,4.0f ,0);

if ( SUCCEEDED ( Device->BeginScene ()))
{

Mesh->DrawSubset (0);
Mesh2->DrawSubset (0);
Camera();
Device->EndScene ();
}
Device->Present ( NULL , NULL , NULL , NULL );

}

تم تعديل هذه المشاركة بواسطة 852147 في 7 أكتوبر 2008 في 20:04

#7

ما اعتقده انه هناك خطأ في ترتيب الرسم

Camera();
if SUCCEDDED(Device->BeginScence()))
{
Mesh->DrawSubset (0);
Device->SetTexture ( 0 , Texture2 );

Mesh2->DrawSubset (0);
Device->SetTexture ( 0 , Texture);
}

Device->EndScence();

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#8

لاتزال نفس المشكلة يأخي

فما الحل

#9

معلش اخي ، انا اسف لاني مبتعد عن هذا المجال لسنوات

نسيت ترتيب الدوال

جرب ان تكتب SetTexture الاول ثم ترسم المجسم drawsubset مع نفس التعديل الذي فوق

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#10

أعتقد أن الكود هكذا صحيح

if SUCCEDDED(Device->BeginScence()))
{
Device->SetTexture ( 0 , Texture2 );

Mesh->DrawSubset (0);

Device->SetTexture ( 0 , Texture);
Mesh2->DrawSubset (0);

}

Device->EndScence();

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 8 أكتوبر 2008 في 13:33

#11

شكرا أخي

الآن المثاال يعمل

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