PositionMesh/AddMesh
Übersicht

![]() |
VirtualDreamsBetreff: PositionMesh/AddMesh |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Function LoadLevel() Local Stream Local FastBuild = True Local FirstObj = True Local FirstMesh If cmd$ = "debug" Then Stream = ReadFile("Map\robot.txt") Else Stream = ReadFile(pak("Map\robot.txt")) End If While Not Eof(Stream) Level.Level = New Level Level\Datei$ = ReadString$(Stream) Level\px% = ReadInt(Stream) Level\py% = ReadInt(Stream) Level\pz% = ReadInt(Stream) Level\rx% = ReadInt(Stream) Level\ry% = ReadInt(Stream) Level\rz% = ReadInt(Stream) Level\alpha# = ReadFloat(Stream) If cmd$ = "debug" Then Level\ID% = LoadMesh("3D\" + Level\Datei$) Else Level\ID% = LoadMesh(pak("3D\" + Level\Datei$)) End If ;EntityType Level\ID%,1 ;EntityAlpha Level\ID%,Level\alpha# If FastBuild = True Then PositionMesh Level\ID%,Level\px%,Level\py%,Level\pz% RotateMesh Level\ID%,Level\rx%,Level\ry%,Level\rz% If FirstObj = True Then FirstMesh = Level\ID% FirstObj = False Else AddMesh Level\ID%,FirstMesh FreeEntity Level\ID% Delete Level End If Else PositionEntity Level\ID%,Level\px%,Level\py%,Level\pz% RotateEntity Level\ID%,Level\rx%,Level\ry%,Level\rz% End If Wend CloseFile(Stream) EntityType FirstMesh,1 End Function Folgendes Problem: Wenn ich FastBuild ausschalte, so wird das Level richtig geladen, also alle Objekte sind an der richtigen Position. Schalte ich aber FastBuild ein, so stimmt nur ein Teil der Position, der Rest ist total verschoben. Ich kann mir aber nicht erklären woher das kommt, denn Irgendwelche Entitybefehle benutze ich ja nicht nach dem laden der Objekte. |
||
![]() |
VirtualDreams |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmmm, keiner ne Idee? Könnte es evtl damit zusammenhängen das meine Mesh 0 dick sind. Glaub ich aber irgendwie weniger das es daran liegt... | ||
![]() |
VirtualDreams |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hatt keiner einen Rat hier? | ||
![]() |
VirtualDreams |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab mal ein bissel rumprobiert und mir ist da etwas kurioses aufgefallen
Mit PositionMesh .... klappt alles, nur zeigen dann alle Objekte in eine richtung -> unerwünscht. RotateMesh gleich danach verursacht diese sinnlosen verschiebungen. Also wenn man PositionMesh und RotateMesh nicht nacheinander ausführen kann ist das reichlich schwach von BB3D!!!! |
||
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
komischer Code :)
Code: [AUSKLAPPEN] Local Stream Local FastBuild = True Local FirstObj = True Local FirstMesh Sowas macht man üblicherweise am Anfang des Programmes (genauso wie Global). In deinem Fall sind die Variablen lokal, was sie sowieso in einer Funktion sind, und somit nicht außerhalb der Funktion exestieren. was ist mit cmd$, hast das global gemacht ? wenn nicht dann müsstest du es als parameter der funktion übergeben. bsp.: LoadLevel(cmd$) müsstest mal den gesammten code posten, so kann man nicht viel zu sagen :) |
||
![]() |
VirtualDreams |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
komischer Code?? Warum? ist doch nur sinnvoll es so zu machen (ne gewohnheit aus C++) cmd$ ist global Aber jetzt: Man muß erst RotateMesh und DANN PositionMesh ausführen. So funzt es einwandfrei (und ich hab wieder 500FPS mehr ![]() Also kleine Sache große Wirkung. |
||
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das ist eigentlich volkommen egal ob man nun RotateMesh
oder PositionMesh zuerst anwendet ... :/ |
||
![]() |
VirtualDreams |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist ebend scheinbar doch nicht egal wie ich gemerkt habe.... | ||
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei PositionEntity ist es egal, da hier ja der Bezugspunkt des Entities mitverschoben wird.
Bei PositionMesh wird aber anscheinend nur das Gittermodell verschoben, der Bezugspunkt bleibt wo er ist. Somit stimmt die Rotationsachse nicht mehr. |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group