PDA

View Full Version : [Frage] was soll ich davon halten ...


Kuschelmaus
13-12-2002, 18:26
wie gfallt euch das? :p

hat wer von euch dasselbe problem ghabt?

bin grad am fehlersuchen, aber wenn ich nix find geb ichs ab und dann will ich extrapunkte, weil so schön kariert, das muß ma amal schaffen :D

bimbo
13-12-2002, 18:38
i hab wa s ähnliches ghabt, hast du schon backface culllign, dann werden die normalen falsch berechnet

wjsus
16-12-2002, 11:51
hab das gleiche problem.... wenns schon gelöst is wär ich dankbar für anregungen.....

wjsus
16-12-2002, 13:59
uaaahh.... langsam bin ich am durchdrehen.... ich krieg dieses verdammte backface culling nicht zum laufen....ich kanns noch so oft durchdenken, ich komm einfach auf keinen grünen zweig was diese normalvektoren betrifft.....
um kurz zu resumieren: entweder die normalvektoren sind gegeben, dann werden sie immer gleich mit transformiert und ich brauch sie für jedes polygon einfach nur aus dem transNormals array holen

tn[X] = transNormals[faceTable[x][n+1]][X];
tn[Y] = transNormals[faceTable[x][n+1]][Y];
tn[Z] = transNormals[faceTable[x][n+1]][Z];


oder ich berechne sie aus dem ursprünlichen vertexTable und lass sie durch die Transformationsmatrix laufen

kpv1[X] = vertexTable[faceTable[x][2]][X] - vertexTable[faceTable[x][1]][X];
kpv1[Y] = vertexTable[faceTable[x][2]][Y] - vertexTable[faceTable[x][1]][Y];
kpv1[Z] = vertexTable[faceTable[x][2]][Z] - vertexTable[faceTable[x][1]][Z];
kpv2[X] = vertexTable[faceTable[x][n]][X] - vertexTable[faceTable[x][1]][X];
kpv2[Y] = vertexTable[faceTable[x][n]][X] - vertexTable[faceTable[x][1]][Y];
kpv2[Z] = vertexTable[faceTable[x][n]][Z] - vertexTable[faceTable[x][1]][Z];

source[0][X] = (kpv1[Y]*kpv2[Z])-(kpv1[Z]*kpv2[Y]);
source[0][Y] = (kpv1[Z]*kpv2[X])-(kpv1[X]*kpv2[Z]);
source[0][Z] = (kpv1[X]*kpv2[Y])-(kpv1[Y]*kpv2[X]);

transformNormalsMatrix.transformPoints(1, source, target);

tn[X] = target[0][X];
tn[Y] = target[0][Y];
tn[Z] = target[0][Z];

sämtliche, für backface culling bzw. shading relevanten berechnungen bzw. bestimmungen basieren ja auf der betrachtung meiner vektoren im raum (viewing coordinates) und nicht in der projektionsebene oder den normalisierten device koordinaten, so denke ich jedenfalls..... aber wieso funktioniert meine obige berechnung für die normalvektoren nicht????

vielleicht weiß ja dankenswerter weise jemand rat......
ich kann nimma.....