Posts

Post not yet marked as solved
1 Replies
1k Views
I've attached a SCNProgram to a SceneKit's geometry, and I'm trying to pass uniforms to the fragment shader. In my simple code snippet I just pass the output color to the fragment shader as a uniform, which returns it as an output value.I've already tested the shaders and they work, in the sense that I can succesfully rotate an object in the vertex shader, or draw an object in a different color in the fragment shader, etc... but the problem is when I pass the uniforms. This is my fragment shader:struct Uniform { float4 color; }; fragment float4 myFragment(MyVertexOutput in [[ stage_in ]], constant Uniforms& uniforms [[buffer(2)]]) { return uniforms.color; }And this is how I try to pass the uniforms in my SceneKit+Swift code:SCNTransaction.begin() cube.geometry?.setValue(NSValue(SCNVector4:SCNVector4(0.0,1.0,0.0,1.0)), forKey: "uniforms.color") SCNTransaction.commit()But my object (it's a cube) is not even drawn (it's black), and I get this error: 2016-04-01 01:00:34.485 Shaded Cube[30266:12687154] SceneKit: error, missing buffer [-1/0]
Posted
by ramy.
Last updated
.