Seite 2 von 2
Re: OpenGL vs. DirectX - Ich bin [nicht mehr] verwirrt.
Verfasst: 10.12.2014, 19:39
von RustySpoon
Potenziell dumme Frage: Warum überhaupt kompilieren/übersetzen und nicht einfach für GLSL/HLSL separat schreiben/ablegen?
Re: OpenGL vs. DirectX - Ich bin [nicht mehr] verwirrt.
Verfasst: 10.12.2014, 21:26
von Krishty
Spiele Programmierer hat geschrieben:Das mit der Dependency stimmt schon.
Allerdings könntest du das Parsen der Shader ja einmalig bei dir im Buildprozess ausführen und HLSL und GLSL fertig erzeugt ausliefern.
Schrompf hat geschrieben:Ansichtssache.
Ich hasse Abhängigkeiten ja auch wie die Pest, aber ich habe sie lieber auf dem System des Entwicklers als auf dem System der Endanwender. Behalt die Hölle auf deinem Entwicklungsrechner – egal ob du nun LLVM benutzt oder das Shader-Assembly aus dem Kopf in einen Hex-Editor tippst – und liefer nur fertigen Bytecode in zwei Versionen aus. Drückt nebenbei beachtlich die Ladezeiten.
[/einmisch]
Re: OpenGL vs. DirectX - Ich bin [nicht mehr] verwirrt.
Verfasst: 15.12.2014, 21:18
von Schrompf
Das mit dem Shadercompiler überlege ich mir nochmal. Ich wollte eigentlich keinen Build Step daraus machen, u.A. weil ich bei den Splitterwelten damals Shader aus XML-Skripten nach Bedarf erzeugt habe.
Weitere Notizen von der DirectX/OpenGL-Front:
- OpenGL hat standardmäßig kein Backface Culling an, DirectX ist standardmäßig bei CounterClockwise
- das dämliche Halb-Pixel-Offset von DirectX9 kriecht in die absurdesten Ecken mit rein. Mistgriebel.
- Man bekommt lustige Screenshots, wenn man seine Framebuffer mit GL_DRAW_FRAMEBUFFER bindet, aber zwischendurch für das Leeren eines Rendertargets einmal an GL_FRAMEBUFFER bindet. glReadPixels() hat dann den einen FrameBuffer ausgelesen, der mal mit GL_FRAMEBUFFER angebunden war. Wenn man danach googelt, erfährt man auch, warum.
- HLSL log() hat anscheinend ein abs() mit eingebaut, GLSL log() nicht.
Re: OpenGL vs. DirectX - Ich bin [nicht mehr] verwirrt.
Verfasst: 16.12.2014, 13:36
von Schrompf
Ich hinterlasse hier mal weiter meine Erkenntnisse, vielleicht sind für jemanden noch nützlich.
Freude mit OpenGL und Intel OnBoard GPU:
- warnt, dass #version deprecated sei im XundY-Sülz-Profile
- warnt gleichzeitig, dass das 'f' am Ende einer Zahl für einfache Genauigkeit erst ab #version 110 erlaubt sei
- fehlert bei jedem #line im Code
- fehlert, wenn das Wort discard irgendwo im Code auftaucht, auch wenn es nicht benutzt wird.
- glBindFramebuffer tut anscheinend nur manchmal, was es soll. Ich krieg diverse Zwischen-Rendertargets übereinander auf den Hauptscreen. Meh.
Re: OpenGL vs. DirectX - Ich bin [nicht mehr] verwirrt.
Verfasst: 17.04.2015, 11:19
von Schrompf
Gestrige Erkenntnis:
DirectX9 und OpenGL (NVidia) unter Windows initialisieren Ressourcen mit 0. NVidia unter LInux tut das nicht, da hat man zufälligen Speichermüll drin.