Autor | Thema: der KÖNIG des directX | | Datum:16.07.01 17:53 
(JoergSeineOma@gmx.de) | |
Insbesondere wende ich mich hier an Sebastian König, bin aber natürlich über jede Hilfe höchst erfreut: Ich habe mir die hervorragenden Quellcodes des oben genannten Experten runtergeladen und möchte sie gern weiterentwickeln, um in ein-zwei Grafikdemos zu testen, ob sich investitionen ins besondere von Zeit in das Thema Profan&Direct3d(und -draw) überhaupt lohnen. Nun das Problem, dass ich selbst noch nicht wirklich in der Lage bin den Code zu durchschauen ist eher ein kleineres, da mir Quelltextanalyse eigentlich noch nie Schwierigkeiten bereitet hat. Was ich nun aber erfolglos versuche sind Dinge wie das Wählen eines anderen Rendermodes (z.B. wireframe, cartoonsytle) oder theoretisch simples wie texturierte Objekt. Da ich selbst kein C++ und auch kein VB behersche, nützt mir das DX8 SDK kaum und somit hoffe ich, dass mir irgendjemand aus der stätig wachsenden Profangemeinde Tips und/oder das ein oder andere stück Programmcode gebn kann.
Danke im vorraus,
Joerg Bauer
|
| | Datum:16.07.01 21:10 
(webmaster@sekoenig.de) | |
Hallo,
um das Objekt im Wireframe-Modus darzustellen, musst Du folgende Änderungen am Quellcode (egal, ob d3d.prf oder d3dmove.prf) vornehmen:
1. Füge nach "CreateDeviceFromClipper" folgenden Code ein:
Call(@long(vp_dev&,84),dev&,64) 'SetQuality (64 = D3DRMRENDER_WIREFRAME)
2. Selektiere statt des Mesh-Objektes direkt den Meshbuilder in den Frame. Dazu musst Du in der Prozedur BuildScene den Abschnitt
print "Childframe->AddVisual:", \
Call(@long(vp_cframe&,72),childframe&,mesh&) 'AddVisual durch
print "Childframe->AddVisual:", \
Call(@long(vp_cframe&,72),childframe&,meshbuilder&) 'AddVisual ersetzen.
Alles, was mit dem Mesh-Objekt zu tun hat, kannst Du dann aus dem Quellcode löschen, um Resourcen zu sparen.
Um Objekte mit Texturen darzustellen, musst Du die Dateien mit Textur-Informationen abspeichern.
Man kann die Objekte nicht "manuell" mit Texturen belegen, da man dazu der Call()-Funktion mehr als 16 Parameter übergeben müsste.
Allerdings ist es sowieso einfacher und bequemer, die Objekte beim Modellieren mit Texturen zu belegen...
Ich hoffe, ich konnte Dir weiterhelfen.
MfG
Sebastian
|
| | Datum:17.07.01 13:23 
(JoergSeineOma@gmx.de) | |
Vielen dank für die schnelle Antwort ! Ich werd es gleichmal testen. Dabei fällt mir aber wieder eine neue Frage ein ;-) ! Woher haben sie dieses Know-how über DX ? Durch das SDK, oder ein Buch, und wenn ja welches ?
Und bezüglich der texturierten x-models: man texturiert sie im Editor und kann sie mit ihrem Quellcode texturiert rendern ?
Nochmals danke im vorraus,
Joerg Bauer
|
| | Datum: 17.07.01 18:13 
(webmaster@sekoenig.de) | |
Hallo,
> Dabei fällt mir aber wieder eine neue Frage
> ein ;-) ! Woher haben sie dieses Know-how über
> DX ? Durch das SDK, oder ein Buch, und wenn ja
> welches ?
ich beziehe die meisten Informationen aus der MSDN Library, die bei meinem Visual C++ dabei war. Auch das DirectX SDK ist teilweise recht hilfreich. Ein Buch über DirectX habe ich nicht gelesen.
Über den Direct3D Retained Mode habe ich viel durch ein Tutorial gelernt. Hier ist die URL (steht auch in den Headern meiner Direct3D-Quellcodes): http://www-public.tu-bs.de:8080/~y0005571/direct3d/1.htm.
> Und bezüglich der texturierten x-models: man
> texturiert sie im Editor und kann sie mit
> ihrem Quellcode texturiert rendern ?
Ja, genau. Am Quellcode selbst muss keine Änderung vorgenommen werden. (Für eine korrekte Darstellung der Textur sollten man den Meshbuilder->SetColorRGB Aufruf entfernen, aber das ist nicht unbedingt notwendig.)
Außerdem sollten sich *.x und Texturen-Datei im selben Verzeichnis befinden.
MfG
Sebastian
|
|
|