Muss ich wirklich mein eigenes optimiertes Modellformat schreiben?


8

Ich bin also ein brandneuer Neuling in der Welt der Spieleentwickler und versuche zunächst, mein eigenes Spiel mit C ++ und openGL zu schreiben. Ich beschäftige mich mit dem Laden von Modellen usw. und während ich nach dem "besten Format" suche, stelle ich fest, dass die meisten gängigen Formate für die Portierung zwischen Modellierungsanwendungen und nicht unbedingt für die endgültige Darstellung von Daten beim Laden in eine Spielumgebung vorgesehen sind. Durch verschiedene Quellen wird mir gesagt, dass Sie letztendlich Formate wie Collada usw. verwenden und diese in ein für Ihr Spiel optimiertes benutzerdefiniertes Binärformat konvertieren möchten. Ist das unbedingt nötig? Ich verstehe die Idee, dass das Parsen eines großen XML- oder eines anderen ASCII-Formats langsamer sein wird als das Lesen eines binären Dateityps, aber wird es wirklich so ein großer Leistungseinbruch sein, wenn ich es nicht tue? Ich kann es nicht sehen,

opengl  c++  models 

2
Was ist los mit vorhandenen Formaten? Sie sind für 99,9% der Menschen vollkommen in Ordnung.
Die kommunistische Ente

Antworten:


5

Ich glaube, diese Leute sagen, dass Sie Ihre COLLADA-Datei in Ihre In-Game-Struktur laden möchten. Anschließend können Sie den Inhalt dieser Struktur in einer Binärdatei speichern, die zur Laufzeit geladen werden kann.

Dies kann Vorteile haben, wie Sie es gesagt haben, hat aber auch Nachteile, typischerweise während der Entwicklungsphase.

Ob der Leistungsgewinn für die Ladezeit, den Sie erhalten, für Ihr Spiel erforderlich ist, müssen Sie selbst entscheiden. Wenn Sie einige nicht komplexe Modelle haben, ist der Unterschied wahrscheinlich vernachlässigbar und es liegt an Ihnen, zu entscheiden, was Sie tun möchten.

Wenn Sie für Entwicklungszwecke lieber COLLADA verwenden und das XML beim Laden analysieren möchten, dann machen Sie mit! Ich würde empfehlen, dass Sie sicherstellen, dass Ihr Ladecode abstrakt genug ist, damit Sie ihn leicht durch Binärdateien ersetzen können, wenn das Laden zu lang wird.


1
Tun Sie also einfach das, was ich getan habe, und wenn ich es für notwendig halte, kann ich die SDKs für diese Formate verwenden, um sie in ein endgültiges Format für mein Spiel zu konvertieren. Vielen Dank für die Klarstellung, es ist manchmal schwierig, die Meinung zu trennen. Ich habe viel Kritik darüber gelesen, diese Formate (insbesondere ASCII) zu verwenden, um sie als etwas zu bezeichnen, das in "professionellen" Spielen niemals verwendet werden würde, aber zuletzt habe ich überprüft, dass ID-Software in den letzten 10 bis 15 Jahren Nur-Text-Modelle verwendet .

Wie wäre es, wenn Sie sich für ein Scheitelpunktlayout entscheiden und diese Informationen dann in einer Datei speichern? Sobald Sie dies herausgefunden haben, können Sie herausfinden, welche anderen Ähnlichkeiten Ihre Netze haben. Das Problem, mit dem Sie meiner Meinung nach zuerst konfrontiert werden, ist die überwältigende Anzahl geringfügiger Unterschiede, die jedes Ihrer Netze in seinen Anforderungen innerhalb der Spielwelt aufweist. Einige dieser Informationen können jedoch beim Laden des Modells generiert werden und sind möglicherweise nicht in der Mesh-Datendatei gespeichert.
Jay
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.