aus normalkoordinate uvkoordiante berechnen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Darren

Betreff: aus normalkoordinate uvkoordiante berechnen

BeitragDi, Dez 28, 2004 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
der titel sagts schon:

wie kann ich aus den normalkoordinaten, die ich zb gepickt habe die uv koordiante ausrechnen??
MFG Darren

Vertex

BeitragDi, Dez 28, 2004 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Garnicht, das eine hat nix mit dem anderen zu tun. Die UV Koordinaten zu berechnen ist weitaus schwiriger.
vertex.dreamfall.at | GitHub
 

Darren

BeitragDi, Dez 28, 2004 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
aber des muss doch gehen verschieden spiele machen das doch auch(ut2004) wenn ich an eine wand scheiße wird eine schussspur direkt auf die textur gepinselt also muss das doch gehen hm vlt verwechsel ihc auch uv und textur koordinaten.. ja genau ich will an eine stelle die ich gepickt hab auf die textur zeichnen so siehts aus Wink Wink also - kann mit vlt jemand helfen??
MFG Darren
 

Dreamora

BeitragDi, Dez 28, 2004 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Daran zweifel ich doch sehr dass einschüsse auf die wand gepinselt werden.
Dafür werden Decals genutzt die direkt auf die Oberfläche gepackt werden.


wenn du aber die UV vom pick wissen willst, schau mal ins englische Codearchiv, Fredborg hat vor ewigen Zeiten entsprechende Funktionen geschrieben ... aber sie ist ziemlich langsam.

[edit]
nur um die Frage vorweg zu klären:

Decals in diesem Zusammenhang ist ein Fläche, die man auf die Oberfläche positioniert und die entsprechend der Normale an diesem Punkt ausgerichtet ist.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Vertex

BeitragDi, Dez 28, 2004 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Jup, wenn Tetxuren z.B. gekachelt werden, hättest du dann überall kleine Einschlusslöscher.
vertex.dreamfall.at | GitHub
 

Darren

BeitragDi, Dez 28, 2004 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
aber wie geht es dann dass es auch um die ecke rum geht..
MFG Darren
 

Dreamora

BeitragDi, Dez 28, 2004 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
man kann das decal auch biegen, es besteht ja aus mehr als 1 Dreieck
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

DBsoft

BeitragDi, Dez 28, 2004 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiss was du meinst. Das problem hatte ich auch.

please hold the line...

DBsoft

BeitragDi, Dez 28, 2004 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
So, Hier der Code aus meinem Spiel:
etwas abgeändert.

;------------- Typen und Globals--------------
Type frags ;Einschusslöcher
Field entity, alpha#
End Type

Global loch_bild
;---------------------- Einschussbild laden-----------
function lade_einschuss_bild() ; Schwarzes Loch mit weissem Hintergrund
loch_bild=loadsprite("abc.bmp",1)
scalesprite loch_bild,0.2,0.2
EntityBlend loch_bild,2
SPRITEVIEWMODE loch_bild,2
hideentity loch_bild
end function
;--------Camera Picking für Einschuss-------------

function shoot_picking() ; Bei jedem Schuss !!!

; Weise jedem objekt "EntityPickmode" hinzu, dann funkzt die nächsten zeilen

target= CameraPick(camera, GraphicsWidth()/2, GraphicsHeight()/2)

If target = >Zielobjekt< then create_einschuss(PickedX(), PickedY(), PickedZ(),PickednX(), PickednY(), PickednZ())

end function
;-------Einschussloch mit übergebenen Koordinaten erzeugen---------------

function create_einschuss(x#,y#,z#,nx#,ny#,nz#)
f.frags = New frags
f\entity = CopyEntity(loch_bild)
PositionEntity f\entity, x#, y#, z#
AlignToVector f\entity,nx#,ny#,nz#,3
MoveEntity f\entity,0,0,0.02
;wenn sprite nicht sichtbar dann --->> turnentity f\entity,180,0,0
f\alpha# = 0.9
EntityAlpha f\entity, f\alpha#
end function
;------------------------Einschüsse verschwinden lassen------------------
; muss immer wieder beim update der Sceene
ausgeführt werden

function update_einschuss()
For f.frags=Each frags
f\alpha#=f\alpha#-.005
If f\alpha#>0
EntityAlpha f\entity,f\alpha#
Else
FreeEntity f\entity
Delete f
EndIf
Next
end function


Der Code ermittelt die Koordinaten der Normalen der "Dreiecke" eines Objektes und erstellt über diesen ein sprite mit dem Einschuss im
entsprechenden Winkel zur Oberfläche.
Bei mir Funktz.
 

Darren

BeitragMi, Dez 29, 2004 13:04
Antworten mit Zitat
Benutzer-Profile anzeigen
so weit war ich auch schon aber ich wollte eigentlich direkt auf die textur drauf malen trotzdem danke
MFG Darren

Jan_

Ehemaliger Admin

BeitragMi, Dez 29, 2004 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
kurz und knapp, geht nicht, nicht mit B3D!
between angels and insects
 

Dreamora

BeitragMi, Dez 29, 2004 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Es geht durchaus
Im Sampleverzeichnis das mit der Blitz3D Vollinstallation kommt hat es ein Beispiel dafür.
Aber es wäre für einschusslöcher extrem komplex da man in echtzeit ein 2tes UV Koordinatenset erzeugen müsste an den "einschusstriagles".

am einfachsten kopiert man dann das triangle in ein neues mesh, setzt dort die uv koordinaten und legt das "loch" drüber
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jan_

Ehemaliger Admin

BeitragMi, Dez 29, 2004 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch unsinn, das geht nciht!
was ist, wenn mehrere Einschusslöcher auf einen tris sind?

Ansonsten müsste man ja extrem große Texturen machen.
between angels and insects
 

Dreamora

BeitragMi, Dez 29, 2004 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich sage ja nicht das optimal ist. Jedes Shooter Spiel seit ~Quake2 nutzt Decals für einschusslöcher und derartiges aus eben diesem "Texturspeicherproblem" was bei vielen einschusslöchern dann nimmer ein problem des texturspeichers wäre sondern ein hardware prob würde wenn du durchgehend neues auf zig verschiedene texturen zeichnen willst
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jan_

Ehemaliger Admin

BeitragMi, Dez 29, 2004 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, aber ich bin der Meinung, es gibt noch mehr 8/16 MB Grafikkarten Benutzter ausser mich, auf arbeit.
Und, B3D Spiele können auf 16 MB Grafikspeicher laufen (Diskwars, läuft sogar auf 8 MB Smile )
Und da machen mir Grße Texturen Bauchschmertzen.
between angels and insects
 

Dreamora

BeitragMi, Dez 29, 2004 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
hehe net nur dir Wink
Habe auch nur ne 64mb karte und will wenn möglich net auf DXTC zurückgreifen weil das Pre GF2 ausschliesst Wink
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jan_

Ehemaliger Admin

BeitragMi, Dez 29, 2004 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
lol, und bitte auf 300 MHz mit allen details laufen, und mein PC hat auch nur 32 mb ram. Smile

Ok, da müssen Komprommisse her, aber auf 64 MB sollten alle B3D programme laufen Smile
between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group