Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

NoobEnt

Frischling

  • »NoobEnt« ist der Autor dieses Themas

Beiträge: 14

Wohnort: Aurich, Ostfriesland

  • Private Nachricht senden

1

09.01.2011, 00:10

Problem mit Rendern von Modellen (Teilweise durchsichtig?)

Moin :)

Ich habe ein Problem:
Wenn ich ein Modell mit der TribaseEngine rendere, sind Teile (in diesem Fall einige Wände) von einigen Seiten durchsichtig :(
ich mache eigentlich alles richtig.
ZBuffer ist an, Culling auch.

Das Model wurde mit AC3D als .3DS exportiert und dann mittels des Konverters konvertiert.
Texturiert ist es auch.

Habe so langsam nicht mehr die geringste Ahnung woran es noch liegen könnte -.-

Vllt. weiß jemand was?

Schomal vielen Dank! :)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

09.01.2011, 01:36

Du sagst Culling ist an. Dann ist Culling wohl genau das Problem, denn Culling sorgt genau dafür dass Dreiecke die von der Kamera wegschauen (die du also von hinten siehst) nicht gerendert werden...

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

3

09.01.2011, 15:24

Jap. Das hört sich eindeutig nach nem Colling Problem an. Schalte beides mal aus und teste es nochmal. Dann sollte alles zu sehen sein. Wenn dies der Fall ist guck mal in deinem 3D-Editor, ob man dort Normalen anzeigen lassen kann. Wenn ja achte darauf, dass die Normalen in die richtige Richtung zeigen. Ein Dreieck wird solange Culling aktiv ist nur gezeichnet wenn es zur Kamera hin ausgerichtet ist. Also wenn die Kamera auf ein Dreieck blickt und dieses Dreieck angezeigt werden soll, muss die Normale zur Kamera hinzeigen. In den meisten Fällen siehts so aus, dass die Normalen vom Model weg zeigen, quasi nach außen zeigen. Hoffe ich konnte weiter helfen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

09.01.2011, 16:19

Ulkig finde ich hier den Avatar: "Noob Entertainment". Ein Teil davon stimmt.
*duckUndRenn*
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

SkryptForFun

Frischling

Beiträge: 27

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

5

09.01.2011, 16:44

Normalerweise hat der 3D-Editor eine Funktion mit der man die Normalen nue berechnen kann. (Gibts zumindest bei Blender :) )

SkryptForFun

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

09.01.2011, 19:08

Nur damit keine Missverständisse aufkommen: Mit den Vertexnormalen hat das nix zu tun. Culling basiert rein auf der Reihenfolge in der die Vertices im Clipspace liegen, also ob im oder gegen den Uhrzeigersinn geordnet. Rein mathematisch könnte man das über das Vorzeichen der z-Koordinate des Kreuzproduktes der Kantenvektoren (das der Dreiecksnormale im Clipspace entsprechen würde) feststellen, aber die Normalen die du in deine Vertices packst haben damit gar nix zu tun (außer dass sie normalerweise auch aus Kreuzprodukten berechnet werden) und daher auch absolut keinen Einfluss auf das Culling, das hängt einzig und allein von der Reihenfolge der Vertices ab. Vertexnormalen spielen z.B. für Beleuchtung etc. eine Rolle.

Ulkig finde ich hier den Avatar: "Noob Entertainment". Ein Teil davon stimmt.
*duckUndRenn*

sry aber den Kommentag find ich ziemlich unnötig...

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »dot« (09.01.2011, 19:21)


NoobEnt

Frischling

  • »NoobEnt« ist der Autor dieses Themas

Beiträge: 14

Wohnort: Aurich, Ostfriesland

  • Private Nachricht senden

7

10.01.2011, 15:59

Erstmal danke für die Antowrten :)

So habe das Culling nun ausgeschaltet.

C-/C++-Quelltext

1
tbDirect3D::Instance().SetRS (D3DRS_CULLMODE, D3DCULL_NONE);


Ich frage mich allerdings, ob es daran überhaupt liegen kann =/
Denn einige Wände werden nur dann durchsichtig, wenn andere Wände dahinter sind.
versperrt eine solche Wand nun die Sicht auf die SkyBox, so ist sie nicht durchsichtig...

8

10.01.2011, 16:09

Hast du den Z-Buffer eingeschaltet? Ich könnt mir denken das es vielleicht daran liegt das das eine Objekt das andere überlappt.
Metal ist keine Musik sondern eine Religion.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

10.01.2011, 16:10

Poste bitte mal einen Screenshot von diesem Problem, atm bin ich mir nicht so sicher was du da genau meinst.

EDIT: Ja ein Fehler mit dem z-Buffering wäre eine denkbare Möglichkeit, trotzdem würd ich gern mal ein Bild vom Problem sehen, dann kann man etwas mehr als nur raten.

NoobEnt

Frischling

  • »NoobEnt« ist der Autor dieses Themas

Beiträge: 14

Wohnort: Aurich, Ostfriesland

  • Private Nachricht senden

Werbeanzeige