السرم عليكم
قمت بانشاء
شكلين
box و
teapot
وعندما أقوم باكساء الجسم بوكس اجد ان الابريق تم اكساؤه اسضا بالرغم
ان لدي
texture1 للبوكس
للابريق texture2
يعني اني عرفت اكساءين كل اكساء خاص بجسم
ممكن مساعدة وشكرا
السرم عليكم
قمت بانشاء
شكلين
box و
teapot
وعندما أقوم باكساء الجسم بوكس اجد ان الابريق تم اكساؤه اسضا بالرغم
ان لدي
texture1 للبوكس
للابريق texture2
يعني اني عرفت اكساءين كل اكساء خاص بجسم
ممكن مساعدة وشكرا
أعطينا الكود لنرى المشكله ونحلها
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
اذا كان كل من texture و texture1 هما مؤشران لنفس الاكساء وهو wood.dds فمن الطبيعي ان يظهر كل من الشكلين بنفس الاكساء
لا يأخي لقد أخطأت في الكتابة فقط
فهما يشران الى عنصرين مختلفين
الأول 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
ما اعتقده انه هناك خطأ في ترتيب الرسم
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
عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح
لاتزال نفس المشكلة يأخي
فما الحل
معلش اخي ، انا اسف لاني مبتعد عن هذا المجال لسنوات
نسيت ترتيب الدوال
جرب ان تكتب SetTexture الاول ثم ترسم المجسم drawsubset مع نفس التعديل الذي فوق
BEng , Electronics and communications.
Embedded systems engineer.
Graphics Programmer
عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح
أعتقد أن الكود هكذا صحيح
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
شكرا أخي
الآن المثاال يعمل