Shading Problem
Übersicht

Omenaton_2Betreff: Shading Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mich bisher nicht viel mit 3D-Programmierung beschäftigt, deshalbe habe ich wahrscheinlich eine solche Frage die jeder am Anfang stellen muß.
Ich habe eine kleine Szene aus 5 Gebäudenteilen (Wälle, Tor,Turm) und bei 2 erkennt man häßliche Dreieckformen (manhe Triangles sind viel stärker abgedunkelt als die angrenzenden Triangles) in der Shading wenn ich eine Lichtquelle außer Ambient einschalte. Ist das normal so? Muß man deshalb wie hier alle sagen extra Shadowmaps nehmen, weil Shading mit normalen BB Lichtern oft nicht richtig funktioniert ? Liegt der Fehler an der Geometry? An was genau? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Der Fehler liegt an der Geometry
die 2 Triangles die derartige Unterschiede aufweisen sind in unterschiedlichen Smoothing Groups, weswegen ihre Facenormals komplett verschieden sind, was sich auch auf das Verhalten gegenüber Lichtquellen auswirkt |
||
.Yukito. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also ich find, da wird ein angehender kaum verstehen... ^^
ich weiß net, in der blitzbase steht, das es lightning probs gibt, wenn man mehrere tris auf die gleichen vertices setzt... ist das bei dir der fall? |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Ja, es kann an der Geometrie liegen.
Wenn man die einzelnen Dreiecke so gut erkennen kann, wie Du es beschreibst, glaube ich auch, dass dies bei Dir der Fall ist. Lösen kannst Du das mit einem guten 3D-Editor indem Du MeshSmooth (oder etwas vergleichbares) auf das Objekt anwendest. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
man kanns auch einfach beschreiben: unterschiedliche SmoothGroup -> ihre Vertexnormale is nicht angepasst sondern es gibt 2 vertex normalen für die gleiche vertex position. deshalb gibts eine derart scharfe reaktion auf die lichteinstrahlung | ||
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gute Erklärungen. Daran könnte es liegen. Mir ist allerdings noch nichtgelungen den Fehler zu beheben, werde aber weiter versuchen.
Kann es aber nicht noch eine andere Erklärung geben? |
||
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hast du schonmal UpdateNormals probiert?(Oder ist das in diesem Fall kompletter Schwachsinn?) | ||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BigBug: danke, habe gerade ausprobiert, das bringt aber nichts. | ||
![]() |
Ayman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ava schrieb:
Zitat: Ja, es kann an der Geometrie liegen. Wenn man die einzelnen Dreiecke so gut erkennen kann, wie Du es beschreibst, glaube ich auch, dass dies bei Dir der Fall ist. Lösen kannst Du das mit einem guten 3D-Editor indem Du MeshSmooth (oder etwas vergleichbares) auf das Objekt anwendest. @Ava: Das klingt interessant. Kannst Du mir einen konkreten 3D-Editor nennen, der diese Funktion drauf hat. Kann 3DS-Max das und wie heißt die Funktion dort? Sorry, hab 3DS-Max z.Z. nicht installiert und weiß es darum nicht. Werd's aber umgehen wieder aufspielen, wenn mich das bei der Lösung meiner wahrscheinlich ähnlich gelagerten Probleme (https://www.blitzforum.de/viewtopic.php?t=3140) weiterführt. |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Bei 3DS heisst sie MeshSmooth! 8) | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
brauchst net ma nen guten Editor
Milkshape hats auch. einfach die Dinge aktivieren und dann gemeinsam derselben smoothing group assignen ( sind unten bei den groups drin - 1 bis 32 ) |
||
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
An Ava:
- Nein, MeshSmooth ist was anderes. MeshSmooth rundet ein Mesh ab. Es heißt SmoothingGroups oder auf Deutsch Glättungsgruppen. An Dreamora und an allen anderen: Das klappt mit dem SmoothingGroups nicht. Das scheint in Ordnung zu sein. Wenn ich endlich mein Gile(s) habe, ist es mir aber egal. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es hilft nur bedingt.
Für mich klingts einfach so als ob du ein extrem kantiges etwas modeliert hast und erwartest dass sich die Helligkeit darüber gleichmässig ändert was unmöglich is ohne VertexColors zu benutzen. |
||
![]() |
Ayman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vorab sorry, dass ich hier in Omenaton_2s Thread poste, aber die Problematik scheint mir doch die gleiche...
Ava schrieb: Zitat: Ja, es kann an der Geometrie liegen. Wenn man die einzelnen Dreiecke so gut erkennen kann, wie Du es beschreibst, glaube ich auch, dass dies bei Dir der Fall ist. Lösen kannst Du das mit einem guten 3D-Editor indem Du MeshSmooth (oder etwas vergleichbares) auf das Objekt anwendest. Bei 3DS heisst sie MeshSmooth! Ich habe jetzt mein 3DS-Max wieder installiert und es ausprobiert... mit wilden Ergebnissen. MeshSmooth kennt mein 3DS in drei Typen: Klassisch, NURBS und Quad. Jede sorgt offenbar dafür, dass meine schöne klare Form verändert wird. Das Ergebnis ist kein reiner Isokaeder mehr sondern ein ähnliches Objekt mit einigen Zacken und Dellen. In BB3D führt das dazu, dass sich mein Beleuchtungsproblem klar verschärft. Ich erhalte somit noch einige Flächen mehr, die falsch beleuchtet werden. Was mache ich falsch oder wie muss ich diesen Modifikator konfigurieren? Dreamora schrieb: Zitat: Es hilft nur bedingt. Für mich klingts einfach so als ob du ein extrem kantiges etwas modeliert hast und erwartest dass sich die Helligkeit darüber gleichmässig ändert was unmöglich is ohne VertexColors zu benutzen. Erster Teil ist richtig erkannt. Ich habe etwas kantiges modeliert und erwarte eben keine runden Lichtübergänge, sondern mit Code: [AUSKLAPPEN] EntityFX <entiy>,4 schlicht, dass das kantige Objekt auch kantig dargestellt wird. Die Flächen, die in anderem Winkel zur Einfallsrichtung des Lichtes stehen sollten klar von einander unterscheidbare Helligkeit haben und diese Helligkeit soll stimmen.
Hier jetzt nochmal das Bild zur Ansicht: ![]() Die Seitenansicht ist ok so. In der Frontalansicht sieht man das schwarze Dreieck über dem Eingang und unterhalb und rechts vom Eingang ist auch alles Schwarz - obwohl dort das Modell keinen Knick macht: Die Flächen um den Eingang/Hangar verlaufen alle senkrecht zum Betrachter. Im Frontal Zoom sieht man schlicht in einen rechteckigen Schacht. Hier sieht man sehr schöne, wie jedes zweite Dreieck praktisch schwarz erscheint, was eben der Fehler an der Sache ist. @Dreamora: Gibt es diese Smoothing Groups auch in 3DS? Oder muss ich mir dazu Milkshape installieren und lernen? Markus2 schrieb in meinem Thread: Zitat: Wenn du dir nen Würfel vorstellst dann für jede Seite 4 Vertices pro Fläche benutzen . In C4D kann man z.B. Flächen markieren und abtrennen auch wenn die Eckpunkte vorher geteilt waren mit anderen Flächen. @Markus2: Das leuchtet mir ein. Aber ist das Ganze dann noch ein Objekt oder habe ich dann jede Seite einzeln und muss sie in BB3D noch montieren? Ich versuchs mal in 3DS ... kann sich bei meinen Fertigkeiten nur um Tage handeln ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. Modifier von 3DS müssen alle ins objekt integriert sein und dürfen zum zeitpunkt des Exports nimmer als modifier existieren
2. Das mit dem Schwarz wird sich da nicht ändern. Dazu musst du subdivision drüber jagen so 2-4x damit da auch ne anständige anzahl vertices is. Wie gesagt, das gesammte Triangle erhält ein und dieselbe helligkeitsstufe -> feinere Abstufung = mehr Triangles es is also keineswegs ein Problem von Blitz3D sondern dein Model is böse gesagt schrott oder für das was du davon erwartest hinsichtlich beleuchtung einfach total ungeeignet. Für sowas brauchste echtzeitschattenwurf und das hat bis anhin erst sswifts schattenlib einigermassen gescheit hinbekommen ( nein is net freeware ![]() |
||
![]() |
Ayman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Dreamora
Zitat: es is also keineswegs ein Problem von Blitz3D sondern dein Model is böse gesagt schrott oder für das was du davon erwartest hinsichtlich beleuchtung einfach total ungeeignet.
Das kann ich mir eigentlich nicht vorstellen, denn dieses Problem taucht nur mit Blitz3d auf und sonst nirgends. 3D Explorer stellt das Modell einwandfrei dar, ebenso SDL, 3DS-Max und Bryce. Uuuhps... ich konnte soeben das Blitz3D-Shading mit Hilfe von 3D Explorer nachstellen, indem ich die Standardbeleuchtung dort durch "Single Light from Eye" ersetzt habe ... interessant. Aber mit der Standardbeleuchtung (zwei gerichtete Lichtquellen, eine von unten, eine von der Seite) klappt die Darstellung selbst dann, wenn ich "No Smoothing Groups" eingestellt habe. |
||
- Zuletzt bearbeitet von Ayman am Di, Mai 11, 2004 1:28, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Warum sollten sie?
Beim Rendern wird ne Shadowmap generiert, renderer nutzen kein VertexLighting. Für echtzeit kannst du dir allerdings keine Shadowmap leisten weshalb man auf VertexLight geht. Wie gesagt dein Model hat VIEL zu wenige Vertices für eine einigermassen akkurate Licht-Schatten-Visualisierung und 3D Explorer kanns auch net falsch darstellen, das hat garkein licht vom ambient abgesehen. kannst ja ma entityfx 1 bzw. 2 versuchen. alternativ dazu kannst du wie gesagt den vertex count auf dem objekt erhöhe so dass es ausreichend triangles hat für eine gleichmässige beleuchtung. |
||
- Zuletzt bearbeitet von Dreamora am Di, Mai 11, 2004 1:29, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nervtötendes doppelpost problem | ||
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ayman schrieb:
"Ich habe jetzt mein 3DS-Max wieder installiert und es ausprobiert... mit wilden Ergebnissen. MeshSmooth kennt mein 3DS in drei Typen: Klassisch, NURBS und Quad. Jede sorgt offenbar dafür, dass meine schöne klare Form verändert wird. Das Ergebnis ist kein reiner Isokaeder mehr sondern ein ähnliches Objekt mit einigen Zacken und Dellen. In BB3D führt das dazu, dass sich mein Beleuchtungsproblem klar verschärft. Ich erhalte somit noch einige Flächen mehr, die falsch beleuchtet werden. Was mache ich falsch oder wie muss ich diesen Modifikator konfigurieren?" - Ich habe dazu schon mal etwas in diesem Thread geschrieben, nämlich dies: "- Nein, MeshSmooth ist was anderes. MeshSmooth rundet ein Mesh ab. Es heißt SmoothingGroups oder auf Deutsch Glättungsgruppen. " Ich habe auch das gehört, daß man das Objekt (nur die fragliche Polygone) wo das Problem auftritt aus mehr Dreiecken machen, also unterteilen soll. Das muß ich nocht testen, ist aber keine schöne Sache, wenn man sich Mühe gibt ein Objekt aus möglichst wenig Polygonen zu erstellen um Geschwindigkeit zu haben und dann sollte man doch noch merh Flächen nehmen. Also im Moment vermute ich, daß das Problem nichts mit SmoothingGroups zu tun hat, sondern die Anzahl der Dreiecke ist bei manchen Flächen zu gering. Bei guten Renderingprogrammen wie 3DStudio ist das gar kein Problem, aber bei Blitz3D verursacht das scheinbar den Shadingfehler, über den wir hier diskutieren. |
||
![]() |
Ayman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jau, Omenaton_2.
Aber Dreamora hat wohl recht, wenn er/sie darauf hinweist, dass sich Blitz3D einer anderen Darstellungstechnik (VertexLighting) bedienen muss um auf Speed zu kommen, als etwa 3DS, der einem bei der internen Darstellung doch vermutlich immer wieder ne Shadowmap zur Darstellung unterjubelt. Sehr schön sehen kann man das Problem mit 3D Exploration, der beide Darstellungsarten anbietet, nur heißen sie da schon wieder anders, als Dreamora das nannte. Klar ist mir aber noch immer nicht, warum die Darstellung mit wenigen Triangles bei VertexLighting nicht klappt. Schatten will ich ja gar keine. Ich will nur, dass alle Oberflächen, die orthogonal der Lichtquelle zugewandt sind, am hellsten sind und mit zunehmendem Winkel weniger hell erscheinen. That's all. Dreamora's Vorschlag mit EntityFX 1 bzw. 2 führt ja wieder zu einem irgendwie rund aussehenden Shading, das ich eben gerade nicht will. Ich will ja gerade ebene Flächen. Nur richtig beleuchtet sollten sie sein: innerhalb einer ebenen Fläche keine Helligkeitsunterschiede bei parallel einfallenden Lichtstrahlen. Anyhow, ich muss mich offenbar erstmal tiefer in die Sache einlesen, bis ich hier zu einer Lösung kommen kann oder auch nur hinreichd verstehe, was Dreamora im Einzelnen mit seinen/ihren Ausführungen meint. Im übrigen muss ich Omenaton_2 unterstützen, wenn er sagt:Zitat: Ich habe auch das gehört, daß man das Objekt (nur die fragliche Polygone) wo das Problem auftritt aus mehr Dreiecken machen, also unterteilen soll. Das muß ich nocht testen, ist aber keine schöne Sache, wenn man sich Mühe gibt ein Objekt aus möglichst wenig Polygonen zu erstellen um Geschwindigkeit zu haben und dann sollte man doch noch merh Flächen nehmen. Eben. Bei Spielen will ich so wenig Vertices wie nötig. Aber wieviele sind nötig? Das scheint hier die Crux ... Vielen Dank zunächst Euch allen für die Antworten ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group