Afficher une texture en directX

ninja hacker Messages postés 45 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 19 mai 2008 - 16 mai 2008 à 21:26
ninja hacker Messages postés 45 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 19 mai 2008 - 19 mai 2008 à 22:36
Bonjour!

Suite a une recherche interminable sur le web j'ai réaliser qu'il n'y avait aucune source en vb.net ou tutorial qui démontrait comment afficher une texture avec directx. je me troune maintenant vers la super communauté de vbfrance pour trouver une solution a mon problème.

Voila je veux pouvoir faire ces actions dans l'ordre ( avec directx biensur) :

1.Définir 4 points cartésien(x et y) dans un array(ou plusieurs array)
2.Créer un rectangle selons ces 4 points
3.afficher une image sur ce rectangle

Bon à date j'ai le code suivant qui me permet de faire un carré a l'aide de deux triangles. C'est le mieu que j'ai été capable de faire pour l'instant :

<hr />Imports

Microsoft.DirectX
Imports

Microsoft.DirectX.Direct3D
Public

Class Form1

Private vertex1(3)
As CustomVertex.TransformedColored

Private vertex2(3)
As CustomVertex.TransformedColored

Private device
As Direct3D.Device

Public
Sub Initialize()

Dim present
As
New PresentParameterspresent.Windowed =

True
'we will draw on a windowpresent.SwapEffect = SwapEffect.Discard

device =

New Direct3D.Device(0, DeviceType.Hardware,
Me, CreateFlags.SoftwareVertexProcessing, present)

End
Sub

Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load

Me.SetStyle(ControlStyles.AllPaintingInWmPaint
Or ControlStyles.Opaque,
True)
'Do not draw forms background

Me.Height = 500
'Set window size and title

Me.Width = 500
Me.Text "My directX test"vertex1(0).Position

New Vector4(100, 100, 0, 1)vertex1(0).Color = Color.Blue.ToArgb
'encode color in Argbvertex1(1).Position New Vector4(300, 100, 0, 1)vertex1(1).Color Color.Cyan.ToArgb
vertex1(2).Position New Vector4(100, 300, 0, 1)vertex1(2).Color Color.Cyan.ToArgb
vertex2(0).Position New Vector4(100, 300, 0, 1)vertex2(0).Color Color.Cyan.ToArgb
vertex2(1).Position New Vector4(300, 100, 0, 1)vertex2(1).Color Color.Cyan.ToArgb
vertex2(2).Position New Vector4(300, 300, 0, 1)vertex2(2).Color Color.Blue.ToArgb

Initialize()

End
Sub

Private
Sub Form1_Paint(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.PaintEventArgs)
Handles
Me.Paint 

device.Clear(ClearFlags.Target, Color.Black, 1.0, 0)

device.BeginScene()

'all drawings after this linedevice.VertexFormat = CustomVertex.TransformedColored.Format

device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, vertex1)

device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, vertex2)

device.EndScene()

'all drawings before this linedevice.Present()

Me.Invalidate()
'redraw

End
SubEnd

Class
<hr />
Voila donc ma question. Quelqu'un aurait-il la gentillesse de m'expliquer comment sois afficher une texture sur mes deux triangles soit une autre facon de faire un rectangle sur lequelle je peux afficher une texture. Il est primordiale que le rectangle sois constitué de mes quatre points cartésien. Merci de vous pencher sur ma question !

1 réponse

ninja hacker Messages postés 45 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 19 mai 2008
19 mai 2008 à 22:36
Rebonjour! Puisque je voyais que personne ne semblait avoir la réponse j'ai décider de poser une autre question qui répond a ma question expliquer plus haut. Quelqu'un aurait-il un tutorial ou simplement des explications sur comment utiliser la fonction directdraw et si il est possible de pouvoir afficher une image et de la faire tourner sur elle meme et de savoir la position des quatres points cartésien qui la constitu? quelquechose du genre DirectDraw.Object.x(1 to 4) Je vous laisse vous pencher sur la question! merci :)
0
Rejoignez-nous