I'm trying to test my glTF library (https://github.com/FuzzyWuzzie/haxe-gltf) for loading glTF models. Basically, right now, I just want to load the mesh data and display it. And what I have right now kind-of works: https://fuzzywuzzie.github.io/gltf-sample-kha/ (source code is at: https://github.com/FuzzyWuzzie/gltf-sample-kha).
If you can't run the demo, here's a screenshot:
As far as I can tell, the glTF data is being loaded correctly (I've manually checked things on smaller triangle and quad models), but it clearly isn't rendering correctly; and it seems like a depth issue (the colours are coming from the mesh normal).
I think I'm doing something wrong in Kha, but I can't seem to figure out what exactly, other than that it seems like a depth issue. The pipeline looks like it should be writing to the depth buffer and comparing against it:
pipeline = new PipelineState(); pipeline.inputLayout = [structure]; pipeline.fragmentShader = Shaders.simple_frag; pipeline.vertexShader = Shaders.simple_vert; pipeline.cullMode = CullMode.Clockwise; pipeline.depthMode = CompareMode.GreaterEqual; pipeline.depthWrite = true; pipeline.compile();
And my render function clears the depth buffer:
var g = frame.g4; g.begin(); g.clear(Color.fromFloats(0.33, 0.33, 0.33), 0); g.setVertexBuffer(vertexBuffer); g.setIndexBuffer(indexBuffer); g.setPipeline(pipeline); g.setMatrix(mvpID, mvp); g.setMatrix(mID, model); g.drawIndexedVertices(); g.end();
But it seems like perhaps the depth buffer isn't being used? Or is there something else wrong with the model data? I could really use another pair of eyes on this if you're available.
Thanks so much!
I prefer to do all my development in Visual Studio Code these days. I know KodeStudio is a fork of Code, but it disables a bunch of things I'd rather it not. Thankfully, I just discovered how to easily debug my projects within Visual Studio Code (I used to just debug in the browser), and figured I'd share in case anyone here is in the same boat.
Here's how I got things working:
- Install the Debugger for Chrome extension
- In your project root, create (or edit) the two files:
.vscode/tasks.jsonaccording to this gist: https://gist.github.com/FuzzyWuzzie/89a620b4adda01452cba0314e4c02c98
- Make sure to enable debug (sourcemaps) in your
- Click the debug tab, select the 'Kha/HTML5' configuration, and launch!
You can set breakpoints, inspect variables, etc.
Hope that helps!