/** * Creates a default vertex {@link Shader}, with an embedded * representation of the source code in form of a data URI.<br> * <br> * The returned {@link Shader} is the vertex {@link Shader} for the * default {@link Material}, as described in "Appendix A" of the * specification. * * @return The default {@link Shader} */ static Shader createDefaultVertexShader() { Shader shader = new Shader(); shader.setType(GltfConstants.GL_VERTEX_SHADER); String encodedCode = Base64.getEncoder().encodeToString( DEFAULT_VERTEX_SHADER_CODE.getBytes()); String dataUriString = "data:text/plain;base64," + encodedCode; shader.setUri(dataUriString); return shader; }
/** * Creates a default fragment {@link Shader}, with an embedded * representation of the source code in form of a data URI.<br> * <br> * The returned {@link Shader} is the fragment {@link Shader} for the * default {@link Material}, as described in "Appendix A" of the * specification. * * @return The default {@link Shader} */ static Shader createDefaultFragmentShader() { Shader shader = new Shader(); shader.setType(GltfConstants.GL_FRAGMENT_SHADER); String encodedCode = Base64.getEncoder().encodeToString( DEFAULT_FRAGMENT_SHADER_CODE.getBytes()); String dataUriString = "data:text/plain;base64," + encodedCode; shader.setUri(dataUriString); return shader; }
/** * Creates a shallow copy of the given {@link Shader} * * @param shader The {@link Shader} * @return The copy */ static Shader copy(Shader shader) { Shader copy = new Shader(); copy.setExtensions(shader.getExtensions()); copy.setExtras(shader.getExtras()); copy.setName(shader.getName()); copy.setType(shader.getType()); copy.setUri(shader.getUri()); return copy; }
Shader vertexShader = new Shader(); vertexShader.setUri(vertexShaderUri); vertexShader.setType(GltfConstants.GL_VERTEX_SHADER); gltf.addShaders(vertexShaderId, vertexShader); Shader fragmentShader = new Shader(); fragmentShader.setUri(fragmentShaderUri); fragmentShader.setType(GltfConstants.GL_FRAGMENT_SHADER);