auser hat geschrieben:Naja ich war schon ganz froh. Bis vor kurzem bin ich stets beim Laden der Meshes gescheitert weil nicht das richtige Format/Version ausgespuckt wurde ...oder eigentlich früher schon beim einfachen Starten von Beispiel-Code in Linux. Ich bin mir ziemlich sicher der funktioniert auch in PB 4.60 Beta nicht.
Da funktionieren auch in Windows nun viele nicht mehr, weil sich Parameter
geändert haben, die noch nicht in der Hilfe dokumentiert und die Beispiele
noch unangetastet sind.
Blitz3D ist in dem Fall aber unschuldig. Model + Skript hat Blender ausgespuckt. Und ehrlich gesagt habe ich auch kein schlechtes Gewissen dabei ein 3D-Model-Program zum Modelieren zu verwenden

- Jaja man kann auch die einzelnen Dreiecke selber zusammen kleben.
Ich konnte auch mit den *.mesh-Dateien von Blender nicht viel Anfangen,
aber damit muss ich mich wohl noch mal beschäftigen, vielleicht ist der
Exporter nun besser geworden. Ich hab auch kein einzelnen Vertex per
Hand geschrieben, sondern die ganzen 3D-Model-Programe ausprobiert,
die ich kostenlos ausprobieren durfte. Das Model beschreibt tatsächlich nur
die ganzen Koordinaten der Vertize usw. Alles, weitere wie Textur, LOD,
Farbgebung, Schatten, usw. steht im Material-Skript. Das sind alles Dinge,
die kein Exporter unterstützt. Lediglich "OgreMax Scene Exporter" hat
brauchbare Material-Skripte ausgespuckt.
In Blitz3D hab ich mich damit auch rumgeschlagen weil mir das Terrain von Blitz3D nicht gereicht hat und ich mir mein eigenes gebaut habe. Also alles hat auch Blitz3D nicht immer out-of-the-box hergegeben. Man ist aber doch gleich viel eher motiviert wenn vieles schon von Haus aus funktioniert und nicht alles zig Anläufe braucht oder verbuggt ist.
Oh ja ...
Dann muss man die halt in der selben Weise selber bauen? Die gab's so weit ich mich erinnere in Blitz3D im Gegensatz zu PB gar nicht out of the Box

... (aber mit EntityOrder war das ziemlich prompt fertig)
Jap. Nur nicht möglich mit der aktuellen Implementierung. Ich hab's
nicht hin bekommen und dann mir noch mal die OGRE-Doku
angeschaut. Zum erstellen eines SkyDomes oder SkyBox gibs extra
Befehle in OGRE. Solche werden auch sicher von PB ausgefrufen,
doch diese haben mehr Parameter als die von PB.
setSkyPlane()
setSkyBox()
setSkyDome()
Alle haben einen Parameter, der ein Materialname erwartet. Und genau diesen
müssen wir aber selber bestimmen können, um wirklich freie Hand zu haben.
Dein "Planet" fällt übrigends in keinen "SkyXXX".
Das heißt den solltest dir tatsächlich auch so machen können. Ein Mesh als Sky
zu verwenden sollte aber auch so möglich sein, ich hab's nur leider trotzdem
noch nicht hin bekommen.
Ich hab die Kollisionserkennung selber programmiert. Wenn du keine komplexe
Physik brauchst, mach Kollisionen selber und verlass dich nicht auf die (fehlerhafte)
Implementierung.


- Noch ein Bug?
Die Physikengine ist in PB4.60 anscheinend noch mal stark erweitert/ verändert
worden ... eventuell ist diese ja nun nicht mehr so Buggy aber ja, noch mehr
Bugs.
Ich denke so in etwa hat's aber in Blitz3D funktioniert. Wobei ich nicht weiß was der Befehl da im Hintergrund wirklich alles gemacht hat. Zumal man ja nicht alles immer ständig prüfen muss. Wenn der nicht nahe genug dran ist dann interessiert er mich ja noch gar nicht und wenn er nahe genug ist dann muss auch nicht in jeder Schlaufe ständig alles erneut geprüft werden.
Und woher "weis" der Befehl, das etwas nicht nahe genug ist? Das muss
auch alles verwaltet werden. Bei einer 3D-Engine kann man aber durchaus
erwarten, dass solche Dinge gut verwaltet werden. Doch sobald die 3D-Engine
auf gerenderte Informationen zurück greift müssen diese natürlich auch
tatsächlich erst mal gerendert sein. Und das wäre im Fall von OGRE und deinem
hier beschriebenen Vorgehen mit TempCamera+CameraLookAt+PointPick 100% der Fall.
Hatte ich ja eigentlich schon geschrieben daß der Server nicht rendern muss jedoch in PB die Kollisionen mit der 3D-Engine zusammengezwirbelt sind. Und nicht nur dort sondern auch in Blitz3D. Will ich die verwenden muss das Teil auch auf meiner Zielplatform laufen. Das ist aber eigentlich eher ein Grund warum ich nicht Blitz3D verwende. In PB wird mir die Liste welche ich dann noch fertig verwenden kann immer kleiner
"Laufen" bedeutet DirectX muss vorhanden sein, was nur mit einer
kompatiblen Grafikkarte zu gewährleisten ist. Emulieren geht allerdings
ja inzwischen auch. Doch "zusammengezwirbelt" hast du gut den
Umstand beschrieben, der hier vorherscht. Es muss der aktuelle Frame
vielleicht tatsächlich nicht gerendert werden, damit ExamineWorldCollision()
funktioniert, doch wer weis, in wie weit die Grafikkarte auch ohne das
Rendern beansprucht wird. Z.B. müssen die ganzen Meshes in den
Speicher geladen werden, und dafür wird natürlich der VRAM verwendet.
Da die Physik in einer 3D-Engine liegt kann ich mir auch gut vorstellen,
dass diese die Grafikkartenbeschleunigung ebenfalls in irgend einer
weise ausnutzt. Aber die Bounding-Box, die die Physikengine verwendet
für Kollisionenen, das ist totaler Overhead. Die Mesh-Daten usw. werden
ja garnicht benötigt. Also schau dich lieber tatsächlich nach alternativen
Physikengins um, auch wenn diese dich im ersten Moment erschlagen
würden. Ogre3D würde dich auch erschlagen, wenn du wüsstest, was dir
PB da eigentlich alles schon abnimmt.
MFG PMV