2 registered members (TipmyPip, 1 invisible),
18,731
guests, and 7
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
hit.u1, hit.u2
#229078
09/24/08 12:03
09/24/08 12:03
|
mercuryus
OP
Unregistered
|
mercuryus
OP
Unregistered
|
hit.x/y/z and hit.u/v returns the world coordinates so when a model is not world centered and/or rotated the hit.u/v values after a trace make no sense to me.
How can I calculate the real texture coordinates after a c_trace hit a rotated/moved model?
The values for hit.v.u1 / hit.v.v1 I do not understand as well.
|
|
|
Re: hit.u1, hit.u2
[Re: jcl]
#229109
09/24/08 15:43
09/24/08 15:43
|
mercuryus
OP
Unregistered
|
mercuryus
OP
Unregistered
|
OK - thats fine. But it doesn't answer my question at all. My main problem is that I do not know how to determine the correct pixels. detailed description: I c_trace from the mouspointer to a facing (90°) model and get the right coordinates with the hit-values. Then I rotate the model and the resulting pixel coordinates of the models textures are "wrong". So the returning hit-values seem to be related to the models/faces angles/position. Maybe there is a "secret trick" to calculate the proper coordinates (I please want to know) or it is simply still a bug. (hit.x/y/z should be -32/32/0 - but this can be calculated) (hit.u1/v1 should definitly be 0/0) Also hit and target vector are always the same.
|
|
|
Re: hit.u1, hit.u2
[Re: jcl]
#229190
09/25/08 11:27
09/25/08 11:27
|
mercuryus
OP
Unregistered
|
mercuryus
OP
Unregistered
|
Sorry but I have to switch to german (native language)...
Was ich benötige ist das Pixel(x/y) der Textur eines Modelles. Die Textur dreht sich mit den Modell mit. Also habe ich (in o.g. Beispiel) Pixel 0/0 der Textur an der oberen linken Ecke des Modelles.
Dieses bekomme ich auch über hit.u1/v1 zurück, wenn ich auf die linke obere Ecke des Modelles trace (und das Modell pan/tilt/roll/x/y/z = 0/0/0/0/0/0 orientiert ist)
Drehe ich nun das Modell (und mit sich die Textur) und ich trace auf die linke obere Ecke des Modelles bekomme ich nicht 0/0 für hit.u1/v1, sondern einen für mich nicht erkennbaren Wert.
Wenn ich jedoch z.B. auf eine Textur zeichnen möchte, kann ich bei gedrehten Modellen nicht die Textur-Pixelkoordinaten ermitteln.
Möglicherweise verstehe ich den Sinn von hit.u1/v1 nicht - dann erklären Sie bitte, was die Werte repräsentieren und wozu ich sie verwenden kann. Zudem würde ich mich über einen Hinweis zur Lösung meines Problemes (seit Januar2008) freuen.
|
|
|
Re: hit.u1, hit.u2
[Re: jcl]
#229191
09/25/08 11:33
09/25/08 11:33
|
Joined: Mar 2007
Posts: 1,852
alpha_strike
Serious User
|
Serious User
Joined: Mar 2007
Posts: 1,852
|
ich glaube, er will die Texturkoordinate haben. Das Problem hatte ich auch mal.
Mein Vorhaben war, auf die Textur an der Aufschlagsfläche eine Wunde zu zeichnen. Zu einer Zeit, bevor das decal-System rauskam.
Das bedeutet, wenn ich auf eine Fläche trace, bekomme ich den Aufschlagsvector in den Weltkoordinaten. Die Koordinaten x y auf der Textur sollten dann aber immer, unabhängig von der Ausrichtung der Entity, das gleiche Ergebnis liefern.
Beispiel: Ich treffe auf das Polyon xyz der getroffenen Entity. Der Rückgabewert ist der Vector xyz. Ich lasse an diesem Vector Blut per Partikel ausströhmen. Und zwar auch noch nachdem sich die Entity weiter bewegt. Dazu speichere ich z.B. den nächsten Vertexpunkt ab und berechne diesen immer wieder neu.
Auf die Texturposition, über die das Trefferpolygon liegt, möchte ich einen Blutfleck zeichnen. Koordinaten X / Y. Egal wie sich die Entity bewegt - die Koordinaten für Textur, über die das Teffer-Polygon platziert ist - bleiben immer gleich.
|
|
|
Re: hit.u1, hit.u2
[Re: jcl]
#229194
09/25/08 13:15
09/25/08 13:15
|
Joined: Mar 2007
Posts: 1,852
alpha_strike
Serious User
|
Serious User
Joined: Mar 2007
Posts: 1,852
|
Zum Zeitpunkt, als ich diese Frage formulierte, gab es noch nicht die Rückgabewerte der Texturkoordinaten. Darum war eine Veränderung der Textur an der ensprechenden, getroffenen Polygonstelle nicht ohne größere Workarounds möglich.
Jetzt liefert die trace-Funktion zusätzlich noch die Textur-Koordinaten zurück, die man bei Bedarf abspeichern kann.
Wenn ich die Bilder anschaue, dann stellen die Koordinaten xyz den Treffer-Vektor dar. Und u1 und v1 vermutlich die Textur Position X und Y.
Nehme ich an, daß das getroffende Polygon die Textur (bitmap) von X=0 bis X=100 und y=0 bis y=100 abdeckt, also 100*100 Pixel - dann müsste ich (egal, wie ich die Entity drehe und platziere) bei tracen derselben Stelle haargenau wieder die gleichen Werte für u und für v bekommen.
In den dargestellten Bildern bekomme ich aber andere Koordinaten ... obwohl die gleich Position am Modell getroffen wird.
Wenn ich das richtig verstanden habe, dann hat der Anwender zwar sein Modell um 15 Grad geneigt, aber er zielt auf haargenau die gleiche Stelle??
Last edited by alpha_strike; 09/25/08 13:22.
|
|
|
Re: hit.u1, hit.u2
[Re: jcl]
#229200
09/25/08 13:47
09/25/08 13:47
|
mercuryus
OP
Unregistered
|
mercuryus
OP
Unregistered
|
Jetzt kommen wir der Sache schon näher! Wie ich festgestellt habe, funktioniert dies eben nicht: Das ist richtig: Die Texturkoordinaten bleiben gleich, wenn Sie auf die gleiche Stelle der Textur tracen. Sie bleiben jedoch nicht gleich, wenn Sie in die gleiche Richtung tracen und das Modell drehen, da Sie dann ja andere Textur-Stellen treffen. (siehe Bilder oben) Hier trace ich in beiden Fällen auf exakt die gleiche Position des Modells (linke obere Ecke (mit Texturpixelkoordinate 0/0)), bekomme aber bei dem gedrehten Modell eine verschobene? Texturposition.
|
|
|
|