EnigmaLine

مشكلة صغيره فى كود انشاء مكعب

4 ردود في هذا الموضوع

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

انا رسمت مكعب مكون من 6 اوجه على الاوبن جى ال المشكله ان الوجه الخلفى للمكعب يظهر فوق الوجه الامامى مع ان الوجه الخلفى العمق بتاعه اقل من العمق للوجه الامامى المشكله ان ال الاشكال المرسومه فى الخلف تظهر على الاشكال المرسومه فى الامام المفروض ان الاشكال المرسومه فى الاماما تغطى على المرسومه فى الخلف

لو انا خليت البرنامج يرسم الوجه الخلفى الاول و بعده الوجه الامامى تظبط معايا بس لما اخلى المكعب يدور بتظهر نفس المشكله

يعنى من الاخر البرنامج بيظهر الاشكال المرسومه فى الاخر فى المقدمه

ده كود مسح الشاشة اللى بستخدمه



Device3D.RenderState.ZBufferEnable = true;
Device3D.RenderState.ZBufferWriteEnable = true;


ارجو الافاده و ياريت تكونو فهمتو قصدى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

معلش هو انا كتبت ان اان عملت المكعب على الاوبن جى ال علشان نفس المشكله دى كانت معايا على الاوبن جى ال

واتحلت على الاوبن جى ال بس انا دلوقتى قررت انتقل الى الدايركت اكس علشان الاوبن جى ال فى مشاكل كتير مش عارف احلها ودلوقتى انا شغال على الدايركت اكس مع السى شارب

والمشكله دى ظهرت معايا انا حلتها على الاوبن جى ال من خلال تفعيل العمق ودلوقتى مش عارف احلها على الدايركت اكس مش عارف المشكله من ايه

ياريت اللى عارف حل للمشكله دى يقولى اعملها ازاى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

هذا اجراء لرسم مكعب

Private Sub loadGeometry()
Try
vbMenu = New VertexBuffer(GetType(CustomVertex.TransformedTextured), _
4, D3DDev, 0, CustomVertex.TransformedTextured.Format, Pool.Default)
Dim v As CustomVertex.TransformedTextured() = CType(vbMenu.Lock(0, 0), CustomVertex.TransformedTextured())

vbCube = New VertexBuffer(GetType(CustomVertex.PositionTextured), _
36, D3DDev, 0, CustomVertex.PositionTextured.Format, Pool.Managed)
Dim vCube As CustomVertex.PositionTextured() = CType(vbCube.Lock(0, 0), CustomVertex.PositionTextured())

' إنشاء وجه المكعب العلويّ
vCube(0) = New CustomVertex.PositionTextured(-0.5, 0.5, 0.5, 0, 0)
vCube(1) = New CustomVertex.PositionTextured(0.5, 0.5, 0.5, 1, 0)
vCube(2) = New CustomVertex.PositionTextured(-0.5, 0.5, -0.5, 0, 1)
vCube(3) = New CustomVertex.PositionTextured(0.5, 0.5, -0.5, 1, 1)
vCube(4) = New CustomVertex.PositionTextured(-0.5, 0.5, -0.5, 0, 1)
vCube(5) = New CustomVertex.PositionTextured(0.5, 0.5, 0.5, 1, 0)

' إنشاء وجه المكعب السفليّ
vCube(6) = New CustomVertex.PositionTextured(-0.5, -0.5, -0.5, 1, 0)
vCube(7) = New CustomVertex.PositionTextured(0.5, -0.5, 0.5, 0, 1)
vCube(8) = New CustomVertex.PositionTextured(-0.5, -0.5, 0.5, 0, 0)
vCube(9) = New CustomVertex.PositionTextured(0.5, -0.5, 0.5, 0, 1)
vCube(10) = New CustomVertex.PositionTextured(-0.5, -0.5, -0.5, 1, 0)
vCube(11) = New CustomVertex.PositionTextured(0.5, -0.5, -0.5, 1, 1)

' الأيسر إنشاء وجه المكعب
vCube(12) = New CustomVertex.PositionTextured(-0.5, 0.5, -0.5, 0, 0)
vCube(13) = New CustomVertex.PositionTextured(-0.5, -0.5, -0.5, 1, 0)
vCube(14) = New CustomVertex.PositionTextured(-0.5, 0.5, 0.5, 0, 1)
vCube(15) = New CustomVertex.PositionTextured(-0.5, 0.5, 0.5, 0, 1)
vCube(16) = New CustomVertex.PositionTextured(-0.5, -0.5, -0.5, 1, 0)
vCube(17) = New CustomVertex.PositionTextured(-0.5, -0.5, 0.5, 1, 1)

' الأيمن إنشاء وجه المكعب
vCube(18) = New CustomVertex.PositionTextured(0.5, 0.5, -0.5, 0, 0)
vCube(19) = New CustomVertex.PositionTextured(0.5, 0.5, 0.5, 1, 0)
vCube(20) = New CustomVertex.PositionTextured(0.5, -0.5, -0.5, 0, 1)
vCube(21) = New CustomVertex.PositionTextured(0.5, -0.5, 0.5, 1, 1)
vCube(22) = New CustomVertex.PositionTextured(0.5, -0.5, -0.5, 0, 1)
vCube(23) = New CustomVertex.PositionTextured(0.5, 0.5, 0.5, 1, 0)

' الخلفيّ إنشاء وجه المكعب
vCube(24) = New CustomVertex.PositionTextured(-0.5, 0.5, -0.5, 0, 0)
vCube(25) = New CustomVertex.PositionTextured(0.5, 0.5, -0.5, 1, 0)
vCube(26) = New CustomVertex.PositionTextured(-0.5, -0.5, -0.5, 0, 1)
vCube(27) = New CustomVertex.PositionTextured(0.5, -0.5, -0.5, 1, 1)
vCube(28) = New CustomVertex.PositionTextured(-0.5, -0.5, -0.5, 0, 1)
vCube(29) = New CustomVertex.PositionTextured(0.5, 0.5, -0.5, 1, 0)

' الأماميّ إنشاء وجه المكعب
vCube(30) = New CustomVertex.PositionTextured(0.5, 0.5, 0.5, 1, 0)
vCube(31) = New CustomVertex.PositionTextured(-0.5, 0.5, 0.5, 0, 0)
vCube(32) = New CustomVertex.PositionTextured(-0.5, -0.5, 0.5, 0, 1)
vCube(33) = New CustomVertex.PositionTextured(-0.5, -0.5, 0.5, 0, 1)
vCube(34) = New CustomVertex.PositionTextured(0.5, -0.5, 0.5, 1, 1)
vCube(35) = New CustomVertex.PositionTextured(0.5, 0.5, 0.5, 1, 0)

vbCube.Unlock()


Catch err As Exception
MsgBox("loadGeometry(): " + Chr(13) + Chr(13) + err.ToString())
Throw New Exception("could not complete loadGeometry()")
End Try
End Sub

وان لم يفى راجع هذا الموضوع

هنا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اذا كنت ستجرب directx9 هناك دالة تقوم بانشاء مكعب مباشرة هي (D3DXCreateBox) بالنسبة لـ open gl لم اعمل عليه مطلقا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .