Posts

Post not yet marked as solved
0 Replies
416 Views
Hi,I'm trying to bind a simple GL shader in SceneKit. I have shaders that get called but can't seem to bind the texture coordinates. This is what I have for the texture binding: program.setSemantic(SCNModelViewProjectionTransform, forSymbol: "modelViewProjection", options: nil) program.setSemantic(SCNGeometrySource.Semantic.vertex.rawValue, forSymbol: "position", options: nil) program.setSemantic(SCNGeometrySource.Semantic.texcoord.rawValue, forSymbol: "textureCoordinate", options: nil) material.handleBinding(ofSymbol: "blobTexture", handler: { (programId:UInt32, location:UInt32, node:SCNNode?, renderer:SCNRenderer) in let imagePath = Bundle.main.path(forResource: "checkerboard", ofType: "png")! if let cgiImg = UIImage(contentsOfFile: imagePath)?.cgImage { do { let _ = try GLKTextureLoader.texture(with: cgiImg, options: nil)// glBindTexture(GLenum(GL_TEXTURE_2D), texture.name) glUniform1i(GLint(location), 1) } catch { print("Texture not loaded", (error)) } } })Should I use glUniform1i instead of glBindTexture? glBindTexture doesn't seem to work. When I use glUniform the model is the color from a single texel.These are the shaders:uniform sampler2D blobTexture;varying vec2 texCoord;void main(void) { gl_FragColor = texture2D(blobTexture, texCoord);}andprecision mediump float;attribute vec4 position;attribute vec2 textureCoordinate;uniform mat4 modelViewProjection;varying vec2 texCoord;void main(void) { texCoord = textureCoordinate; gl_Position = modelViewProjection * position;}
Posted
by jgsjames.
Last updated
.