Quad Schuss Texturieren
Übersicht

![]() |
MegamagBetreff: Quad Schuss Texturieren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Ich habe hier im Forum einen kleinen Code von hectic gefunden, wei man Quad-Schüsse (Quads kreuzen) erstellt. Ich habe den mal mit einer kleinen Textur versehen: (weiß ist eigentlich transparent) Hier der kleine Test-Code: Code: [AUSKLAPPEN] Graphics3D 1024,768,16,2
SetBuffer BackBuffer() teil=CreateMesh() surface=CreateSurface(teil,brush) v0=AddVertex(surface,-1,+2,0, 0,0) v1=AddVertex(surface,+1,+2,0, 1,0) v2=AddVertex(surface,+1,-2,0, 1,1) v3=AddVertex(surface,-1,-2,0, 0,1) v4=AddVertex(surface,0,+2,-1, 0,0) v5=AddVertex(surface,0,+2,+1, 1,0) v6=AddVertex(surface,0,-2,+1, 1,1) v7=AddVertex(surface,0,-2,-1, 0,1) AddTriangle(surface,v0,v1,v2) AddTriangle(surface,v2,v3,v0) AddTriangle(surface,v4,v5,v6) AddTriangle(surface,v6,v7,v4) UpdateNormals teil EntityFX teil,17 ;MoveEntity teil,0,2,0 tex=LoadTexture("laser_tex_rot.png",2) EntityTexture teil,tex,0,0 light=CreateLight() PointEntity light,teil cam=CreateCamera() MoveEntity cam,0,0,-5 Repeat TurnEntity teil,0,1,1 UpdateWorld RenderWorld Flip Until KeyHit(1) Jetzt funktioniert es gut, aber es sieht irgendwie nicht schön aus. Ihr seht ja selber, dass man gut das Kreuz und die Überlagerungen erkennen kann. Auf jeden Fall weit entfernt von sowas hier: https://www.blitzforum.de/gall...roject=139 Meine Frage also: Was muss ich tun, damit die Schüsse so gut aussehen, wie auf dem Bild, sprich, dass die Kreuze nicht mehr so zu sehen sind. Gibt es da irgendwelche speziellen Filte, die ich im Spiel machen muss oder gibt es da einen anderen Trick? Vielen Dank für Antworten! |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es wird statt eines statischem Kreuzartigem Meshes ein perspektivisch korrektes Quad, welches wie ein Sprite zur kamera gerichtet ist, gezeichnet. Ich hab mich aber noch nicht darum gekümmert, weshalb ich dir jetzt auch kein fertigen Code geben kann. Jedoch habe ich es schon seit längerem ins Auge gefasst so etwas zu machen.
Es schadet aber nicht da weiter zu graben. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Shodan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja das ist die effektivste Methode.
Man erzeugt ein Pivot. An das Pivot wird ein simples Quad mit einer Textur angehängt. Die Textur wäre zB einfach ein runder verwaschener Fleck. Das Pivot entlang der Z-Achse strecken und als Schuss vorwärts bewegen. Das Quad immer Auf die Kamera ausrichten, fertig. Das Quad wird durch das übergeordnete, verzerrte Koordinatensystem des Pivots immer mit verzerrt. Dieses Prinzip hab ich bei der DST_Dust Bibliothek verwendet. Sieh dir dort den Code mal an. Speziell beim "Speed_Blur" wird das deutlich. mfg Shodan |
||
www.selfmadegames.de |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
BIG BUG hatte mir mal ein Kreuzprodukt-Beispielcode gegeben, welches ich eben wieder auftat und es auf gewünschte Bedürfnisse anpasste.
Unabhängig laufähiger Code: [AUSKLAPPEN] Graphics3D 800,600,0,2
SetBuffer BackBuffer() Local Timer=CreateTimer(58) Local Camera=CreateCamera() CameraClsColor Camera,64,64,64 CameraRange Camera,1,1000 Const SIZE#=100 Local Mesh=CreateMesh() Local Face=CreateSurface(Mesh) Local X1#,Y1#,Z1# Local X2#,Y2#,Z2# Local V0%,V1% Local V2%,V3% Local LX#,LY#,LZ# Local AX#,AY#,AZ# Local NX#,NY#,NZ# Local LN# While Not KeyHit(1) X1=MouseX()-400 Y1=300-MouseY() Z1=400 X2=0 Y2=0 Z2=1000 LX=X1-X2 LY=Y1-Y2 LZ=Z1-Z2 AX=X2-EntityX(Camera) AY=Y2-EntityY(Camera) AZ=Z2-EntityZ(Camera) NX=(LY*AZ)-(LZ*AY) NY=(LZ*AX)-(LX*AZ) NZ=(LX*AY)-(LY*AX) LN#=Sqr(NX^2+NY^2+NZ^2) NX=NX/LN*SIZE NY=NY/LN*SIZE NZ=NZ/LN*SIZE V0=AddVertex(Face,X1+NX,Y1+NY,Z1+NZ) V1=AddVertex(Face,X2+NX,Y2+NY,Z2+NZ) V2=AddVertex(Face,X2-NX,Y2-NY,Z2-NZ) V3=AddVertex(Face,X1-NX,Y1-NY,Z1-NZ) AddTriangle(Face,V0,V1,V2) AddTriangle(Face,V2,V3,V0) WaitTimer Timer RenderWorld ClearSurface(Face) Flip 0 Wend End |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm, also zumindest die DGX9142-Schüsse (Screen) sind einfach nur Meshes... https://www.blitzforum.de/foru...hp?t=32441 | ||
MrKeks.net |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gut, ob Mesh oder Quad ist ja egal (denke ich). Es geht ja darum, es so zu texturieren, dass es zwar immer noch schön Volumen hat, aber man das Kruez nicht so extrem sieht (danke hectic, für deine Lösung, aber ich glaube, das würde nicht so gut in meinem Projekt aussehen).
EDIT: Ich habe in Milkshape jetzt mal so ein Kreuz-Modell gamcht und texturiert. Dann habe ich das ganze mit Blend Mode 3 versehen, und ich finde das sieht ziemlich gut aus. Das Kreuz erkennt mann aber immer noch sehr deutlich, wenn man von vorne/hinten auf den schuss schaut. Ich habe mir gedacht irgendwie noch ein Quad davor zu setzten, wo dann eine Front Textur drauf ist, aber das sieht ziemlich bescheuert aus. Habt ihr da irgendwelche Tipps? (Bin leider nicht so erfahren mit Lichteffekten, wäre es aber gerne...) |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Megamag hat Folgendes geschrieben: danke hectic, für deine Lösung, aber ich glaube, das würde nicht so gut in meinem Projekt aussehen.
Ein Kreuzmesh kommt nie an die selbe qualitative Darstellung als die von mir gepostete Lösung. Diese nämlich passt die Perspektive optimal dem Betrachter an, wärend ein Kreuzmesh genau dehalb ein ''Kreu'' hat, weil man sich eben genau diese Rechenlösung sparen möchte. ![]() Die einzige Bedingung wo auch meine Lösung nicht perfekt ist, ist, wenn der Schuss sehr direkt dem Betrachter zu fliegt. Aber auch hier wird ein Kreuzmesh immer mindestens schlechter sein. Um aber dem visuellem Abflachen entgegen zu tretten, kann man zusätzlich ein zur Kamera gerichtetes Sprite benutzen. Dazu kannst du die bei der Draw3D2 beigelegte Funktion DrawSprite3D benutzen. Also eine Kombination von beiden. wenn dich das interessiert kann ich dir die gestern fertiggestellten Funktionen zusenden. Diese können dann unter der Draw3D2 Linien und Images im 3D-Raum zeichnen. Dazugekommen ist DrawLine4D und DrawSprite3D hab ich nun in DrawImage4D umbenannt. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group