List of usage examples for org.lwjgl.opengl GL20 GL_FRAGMENT_SHADER
int GL_FRAGMENT_SHADER
To view the source code for org.lwjgl.opengl GL20 GL_FRAGMENT_SHADER.
Click Source Link
From source file:org.terasology.rendering.shader.ShaderProgram.java
License:Apache License
private void compileShader(int type) { int shaderId = GL20.glCreateShader(type); StringBuilder shader = Shader.createShaderBuilder(); if (type == GL20.GL_FRAGMENT_SHADER) shader.append(Shader.getIncludedFunctionsFragment()).append("\n"); else/*from w w w. j a v a 2s. c o m*/ shader.append(Shader.getIncludedFunctionsVertex()).append("\n"); String filename = title; if (type == GL20.GL_FRAGMENT_SHADER) { filename += "_frag.glsl"; } else if (type == GL20.GL_VERTEX_SHADER) { filename += "_vert.glsl"; } logger.debug("Loading shader {} ({}, type = {})", title, filename, String.valueOf(type)); // Read in the shader code shader.append(readShader(filename)); if (type == GL20.GL_FRAGMENT_SHADER) { fragmentProgram = shaderId; } else if (type == GL20.GL_VERTEX_SHADER) { vertexProgram = shaderId; } GL20.glShaderSource(shaderId, shader.toString()); GL20.glCompileShader(shaderId); String error; if ((error = printLogInfo(shaderId)) != null) { JOptionPane.showMessageDialog(null, "Shader '" + title + "' failed to compile. Terasology might not look quite as good as it should now...\n\n" + error, "Shader compilation error", JOptionPane.ERROR_MESSAGE); } }
From source file:ovh.tgrhavoc.gameengine.core.Shader.java
License:Open Source License
public void addFragmentShaderFromFile(String text) { addProgram(loadShaders(text), GL20.GL_FRAGMENT_SHADER); }
From source file:ovh.tgrhavoc.gameengine.core.Shader.java
License:Open Source License
public void addFragmentShader(String text) { addProgram(text, GL20.GL_FRAGMENT_SHADER); }
From source file:renderEngine.ShaderProgram.java
/** * Creates a new instance of ShaderProgram, and links the program. * * @param vertexFile The relative location of the vertex shader file. * @param fragmentFile The relative location of the fragment shader file. */// ww w. j av a2s . c o m public ShaderProgram(String vertexFile, String fragmentFile) { this.vertexShaderID = loadShader(vertexFile, GL20.GL_VERTEX_SHADER); this.fragmentShaderID = loadShader(fragmentFile, GL20.GL_FRAGMENT_SHADER); this.programID = GL20.glCreateProgram(); GL20.glAttachShader(programID, vertexShaderID); GL20.glAttachShader(programID, fragmentShaderID); bindVariablesAndValidate(); }
From source file:samples.ShaderSample.ShaderSample.java
License:Apache License
@Override public void drawScene() { //Create a new Scene we can override Scene myScene = new Scene(this.getName()) { @Override/*from ww w . ja v a 2 s .co m*/ public void tick() { super.tick(); Light l = this.getDisplayManager().getLightsList().get(0); double speed = 0.05; if (Keyboard.isKeyDown(Keyboard.KEY_LEFT)) { l.getLocation().addX(speed); } if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) { l.getLocation().addX(-speed); } if (Keyboard.isKeyDown(Keyboard.KEY_UP)) { l.getLocation().addZ(speed); } if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) { l.getLocation().addZ(-speed); } if (Keyboard.isKeyDown(Keyboard.KEY_W)) { l.getLocation().addY(speed); } if (Keyboard.isKeyDown(Keyboard.KEY_S)) { l.getLocation().addY(-speed); } for (Model m : this.getModels()) { if (m instanceof Plane) continue; m.getLocation().addYaw(1).addPitch(1); } } }; Scene.ACTIVE_SCENE = myScene; //Create some cubes SimpleMaterial mat = new SimpleMaterial(); mat.setOutlined(true); mat.setOutlineColor(Color.PINK); int grid = 2; for (int x = -grid; x <= grid; x++) { for (int z = -grid; z <= grid; z++) { if (z == 0 && x == 0) continue; Model model = new Sphere(); model.getLocation().setZ(z * 2d).setX(x * 2d); myScene.addModel(model); model.setMaterial(mat); } } Model cube = new Cube(); try { Texture t = PNGTexture.loadFromResource("samples/TextureSample/brick.png", PNGDecoder.Format.RGBA); t.load(); cube.getMaterial().setTexture(t); cube.getMaterial().setOutlined(true); cube.getMaterial().setOutlineThickness(10); cube.getMaterial().setOutlineColor(Color.GREEN); ((Cube) cube).reInit(); myScene.addModel(cube); } catch (Exception e) { this.getLogger().log(e); cube.getMaterial().setColor(Color.RED); } Model plane = new Plane(); plane.getMaterial().setColor(Color.BLUE); plane.setScale(10); plane.getLocation().setY(-1); //myScene.addModel(plane); //Create a light Light light = new SimpleLight(); light.getLocation().set(2, .5, 0); this.getScene().addLight(light); //Load the Shader Shader toonFragShader = new Shader(); Shader toonVertShader = new Shader(); ShaderProgram toonShader = new ShaderProgram(); try { toonFragShader.compile(FileUtilities.getResourceAsString("shaders/ToonShader/toon_shader.frag"), GL20.GL_FRAGMENT_SHADER); toonVertShader.compile(FileUtilities.getResourceAsString("shaders/ToonShader/toon_shader.vert"), GL20.GL_VERTEX_SHADER); toonShader.addShader(toonFragShader).addShader(toonVertShader); toonShader.compile(); for (Model m : myScene.getModels()) { m.setShaderProgram(toonShader); } } catch (Exception e) { Game.GAME_INSTANCE.showWarning("Shader Error!", e.getMessage()); this.forceClose(CloseReason.ERROR); } //Draw Axis, Lights and Grid this.getDisplayManager().drawAxis = true; this.getDisplayManager().clearColor = Color.BLACK; this.getDisplayManager().drawLights = true; this.getDisplayManager().showFPS = false; //Move Camera this.getScene().getCamera().setLocation(new Location(3, 3, 3)); }
From source file:se.angergard.engine.graphics.ShaderProgram.java
License:Apache License
public ShaderProgram addFragmentShader(String code) { return addShader(code, GL20.GL_FRAGMENT_SHADER); }
From source file:se.angergard.engine.graphics.ShaderProgram.java
License:Apache License
private ShaderProgram addShader(String code, int type) { int shader = GL20.glCreateShader(type); GL20.glShaderSource(shader, code);/*from w w w. j a va2 s .c o m*/ GL20.glCompileShader(shader); if (type == GL20.GL_VERTEX_SHADER) { vertexShader = shader; } else if (type == GL20.GL_FRAGMENT_SHADER) { fragmentShader = shader; } else if (type == GL32.GL_GEOMETRY_SHADER) { geometryShader = shader; } String error = GL20.glGetShaderInfoLog(shader, GL20.GL_INFO_LOG_LENGTH); if (!error.equals("")) { System.out.println(error); } if (shader == -1) { System.err.println("Shader wasn't succsessfully created"); } GL20.glAttachShader(program, shader); return this; }
From source file:thebounzer.org.lwgldemo.Chapter3.java
License:Open Source License
@Override public void configure() { shaders.add(new GenericShader("src/main/resources/shadersCap3/shader.vert", GL20.GL_VERTEX_SHADER)); shaders.add(new GenericShader("src/main/resources/shadersCap3/shader.frag", GL20.GL_FRAGMENT_SHADER)); shaderSetup();//from w w w . jav a2 s . c om }
From source file:thebounzer.org.lwgldemo.Chapter5.java
License:Open Source License
@Override public void configure() { shaders.add(new GenericShader("src/main/resources/shadersCap5/shader.vert", GL20.GL_VERTEX_SHADER)); shaders.add(new GenericShader("src/main/resources/shadersCap5/shader.frag", GL20.GL_FRAGMENT_SHADER)); vaoId = GL30.glGenVertexArrays();//from ww w. jav a2 s .co m GL30.glBindVertexArray(vaoId); GL11.glPointSize(5.0f); try { createAndBindVertexObject(vertex); } catch (IOException ex) { Logger.getLogger(Chapter5.class.getName()).log(Level.SEVERE, null, ex); } shaderSetup(); FloatBuffer matrixProjBuff = BufferUtils.createFloatBuffer(16); projMat.store(matrixProjBuff); matrixProjBuff.flip(); }
From source file:uk.co.ifs_studios.engine.shader.FragmentShader.java
License:Open Source License
/** * Load and compile shader.//from w ww . j a va2s. co m */ public void load() { StringBuilder shaderSource = new StringBuilder(); try { BufferedReader reader = new BufferedReader(new InputStreamReader(this.shaderStream)); String line; while ((line = reader.readLine()) != null) { shaderSource.append(line).append("\n"); } reader.close(); } catch (FileNotFoundException e) { EngineLogger.error(new ShaderException("Shader file not found.", e)); } catch (IOException e) { EngineLogger.error(new ShaderException("Couldn't read shader file.", e)); } this.id = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER); GL20.glShaderSource(this.id, shaderSource); GL20.glCompileShader(this.id); }