Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Code:
//places transparent meshes to be rendered last
//TODO: if transparent material is not the first material for a mesh it does not work.
Das steht in der gl3DS.pas genau über dieser Funktion (zumindest in der Version die ich habe) und sollte daher auch beachtet werden. Wenn das nicht möglich ist, dann musst du dir selbst ne eigene Funktion schreiben die grob nach Transparenz sortiert, das geht aber recht leicht denn im Normalfall reicht es alle soliden Objekte zu rendern und danach alle transparenten.
Registriert: Di Feb 22, 2005 12:51 Beiträge: 11 Wohnort: NRW
Hey Danke!!!!
Ich glaube das Problem erkannt zu haben.... mal sehen ob ich jetzt auch eine Lösung finde!?
Ich benutze 6 Materials.
In meiner *.txt Datei besitzen alle Materials in der 6. Zeile den Wert "0.000000" (laut ms3d-SDK der Wert für die Transparenz). In meinem Project, der gl3ds.pas besitzen alle Materials in Ftransparency den Wert "1". Was ich mir nicht so ganz erklären kann, denn so scheitert in der gl3ds.pas die IF-Abfrage: if ... Ftransparency < 1.0 then ...
Code:
//places transparent meshes to be rendered last
//TODO: if transparent material is not the first material for a mesh it does not work.
procedure TAll3DSMesh.CalculateRenderOrder;
var
m:integer;
found:integer;
matloop:integer;
begin
found :=0;
m :=0;
while m < FNumMeshes -1do
begin
if m < FNumMeshes - found then
begin
for matloop :=0toHigh(FMesh[FrenderOrder[m]].FmatID)do
begin
if FMaterial[FMesh[FrenderOrder[m]].Fmatid[matloop]].Ftransparency < 1.0then
begin
found := found +1;
FRenderOrder[m]:= FNumMeshes - Found;
FRenderOrder[FNumMeshes - Found]:= m;
m := m -1;//a new mesh is placed at renderorder so it has to be checked again...
end;
end;
end;
m := m +1;
end;
end;
Ändere ich den Wert in meiner *.txt-Datei, hat das jedoch keinen Einfluss. Ftransparency enthält immer den Wert "1".
Nochmal zu meinem Verständniss: 0 = Solid und 1 = Transparent?
Wenn das so ist, muss ich es schaffen den Wert auf 0 zu setzen?
Könnte das die ganze Zeit mein Problem sein?
Registriert: Di Feb 22, 2005 12:51 Beiträge: 11 Wohnort: NRW
Das Problem mit dem Milkshapeloader hab ich gelöst! Will jedoch trotzdem schaffen auch mein 3DS-Problem zu lösen! Sonst muss ich ja alles mit Milkshape machen und das hatte ich eigentlich nicht vor. Die ppModelGL.pas, des API-Loader-Beispiel vom Board hat einen Fehler in Zeile 279 gehabt. Naja nach meiner änderung funktionieren meine erstellten MS3D-Models jetzt zumindest. Komisch, dass das mit der Beispiel-Datei(Ernie) funktioniert hat.
Mitglieder in diesem Forum: Bing [Bot] und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.