当前位置: 首页>>代码示例>>Java>>正文


Java GL20.glGetUniformLocation方法代码示例

本文整理汇总了Java中org.lwjgl.opengl.GL20.glGetUniformLocation方法的典型用法代码示例。如果您正苦于以下问题:Java GL20.glGetUniformLocation方法的具体用法?Java GL20.glGetUniformLocation怎么用?Java GL20.glGetUniformLocation使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.lwjgl.opengl.GL20的用法示例。


在下文中一共展示了GL20.glGetUniformLocation方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: fetchUniforms

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
private Uniform[] fetchUniforms()
{
	int len = GL20.glGetProgrami(this.handle, GL20.GL_ACTIVE_UNIFORMS);
	int strlen = GL20.glGetProgrami(this.handle, GL20.GL_ACTIVE_UNIFORM_MAX_LENGTH);

	Uniform[] uniforms = new Uniform[len];

	IntBuffer sizeBuffer = BufferUtils.createIntBuffer(1);
	IntBuffer typeBuffer = BufferUtils.createIntBuffer(1);
	for(int i = 0; i < uniforms.length; ++i)
	{
		String name = GL20.glGetActiveUniform(this.handle, i, strlen, sizeBuffer, typeBuffer);
		int location = GL20.glGetUniformLocation(this.handle, name);
		uniforms[i] = new Uniform(this, name, typeBuffer.get(), location);

		typeBuffer.flip();
	}

	return uniforms;
}
 
开发者ID:andykuo1,项目名称:candlelight,代码行数:21,代码来源:Program.java

示例2: initializeWorld

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
private void initializeWorld(int renderDistance, int centerX, int centerY, int centerZ, Shader shader) {
	
	playerChunkX = centerX;
	playerChunkZ = centerZ;
	
	//initialize the world
	worldChunks = new int[(renderDistance*2-1)*16*(renderDistance*2-1)];
	worldMetadata = new int[(renderDistance*2-1)*16*(renderDistance*2-1)];
	chunkIdList = new ArrayDeque<Integer>();
	metadataIdList = new ArrayDeque<Integer>();
	for (int i = worldChunks.length; i > 0; i--) {
		chunkIdList.push(i);
	}
	for (int i = worldMetadata.length; i > 0; i--) {
		metadataIdList.push(i);
	}
	
	//update the buffer size
	GL15.glBindBuffer(GL43.GL_SHADER_STORAGE_BUFFER, shader.getChunkSsbo());
	GL15.glBufferData(GL43.GL_SHADER_STORAGE_BUFFER, chunkSize*worldChunks.length*2*4, GL15.GL_DYNAMIC_DRAW);
	
	GL15.glBindBuffer(GL43.GL_SHADER_STORAGE_BUFFER, shader.getMetadataSsbo());
	GL15.glBufferData(GL43.GL_SHADER_STORAGE_BUFFER, chunkSize*worldMetadata.length*4, GL15.GL_DYNAMIC_DRAW);
	GL15.glBindBuffer(GL43.GL_SHADER_STORAGE_BUFFER, 0);
	
	//inform the shader of the new render distance
	int renderDistanceUniform = GL20.glGetUniformLocation(shader.getShaderProgram(), "renderDistance");
	GL20.glUniform1i(renderDistanceUniform, renderDistance-1);
}
 
开发者ID:18107,项目名称:MC-Ray-Tracer,代码行数:30,代码来源:WorldLoader.java

示例3: addUniform

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
/**
    * Adds the specified uniform to the lookup table and shader
    * @param uniform
    */
   public void addUniform(String uniform) {
// The location in memory of the uniform
int location = GL20.glGetUniformLocation(pid, uniform);

// If the uniform does not exist
if(location == -1) {
    System.err.println("Error in Shader.addUniform(): uniform [" + uniform + "] does not exist");
    System.exit(1);
}

// Add the uniform to the lookup table
uniforms.put(uniform, location);
   }
 
开发者ID:camilne,项目名称:open-world,代码行数:18,代码来源:Shader.java

示例4: getUniformLocation

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
/**
 * Cached lookup for uniform variable locations
 * @param name variable name in shader
 * @return location
 */
private int getUniformLocation(String name) {
	// Return location if it is already known
	if (uniforms.containsKey(name)) {
		return uniforms.get(name);
	} else {
		int location = GL20.glGetUniformLocation(id, name);
		uniforms.put(name, location);
		
		return location;
	}
}
 
开发者ID:tacocat,项目名称:lambda,代码行数:17,代码来源:ShaderProgram.java

示例5: findUniformLocation

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public int findUniformLocation(String uniformName)
{
	Uniform uniform = this.uniforms.get(uniformName);
	if (uniform == null)
	{
		int location = GL20.glGetUniformLocation(this.handle, uniformName);
		if (location < 0)
		{
			throw new GLException("Could not find uniform with name: " + uniformName);
		}
		return location;
	}
	return uniform.location;
}
 
开发者ID:andykuo1,项目名称:candlelight,代码行数:15,代码来源:Program.java

示例6: getUniformLocation

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public int getUniformLocation(String uniform) {
	for (String s : uniformsDetection) {
		if (s.equals(uniform)) {
			return GL20.glGetUniformLocation(program, uniform);
		}
	}

	System.err.println("Uniform not found: " + uniform);
	return -1;
}
 
开发者ID:ComunityEngine,项目名称:CommunityEngine-Java,代码行数:11,代码来源:Shader.java

示例7: getUniformLocation

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
protected int getUniformLocation(String uniformName) {
	return GL20.glGetUniformLocation(programID, uniformName);
}
 
开发者ID:marcioz98,项目名称:MRCEngine,代码行数:4,代码来源:ShaderProgram.java

示例8: runShader

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public static void runShader() {
	Minecraft mc = Minecraft.getMinecraft();
	
	//TODO remove
	if (Keyboard.isKeyDown(Keyboard.KEY_NUMPAD5)) {
		destroyShader();
		createShader();
	}
	
	//Use shader program
	GL20.glUseProgram(shader.getShaderProgram());
	
	//TODO third person view
	Entity entity = mc.getRenderViewEntity();
	float partialTicks = mc.getRenderPartialTicks();
	double entityPosX = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * (double)partialTicks;
       double entityPosY = entity.lastTickPosY + entity.getEyeHeight() + (entity.posY - entity.lastTickPosY) * (double)partialTicks;
       double entityPosZ = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * (double)partialTicks;
       float fov = (float) Math.toRadians(mc.entityRenderer.getFOVModifier(partialTicks, true));
	
	//Set uniform values
	int texUniform = GL20.glGetUniformLocation(shader.getShaderProgram(), "tex");
	GL20.glUniform1i(texUniform, 0);
	int cameraPosUniform = GL20.glGetUniformLocation(shader.getShaderProgram(), "cameraPos");
	GL20.glUniform3f(cameraPosUniform, (float)entityPosX%16, (float)entityPosY%16, (float)entityPosZ%16);
	int cameraDirUniform = GL20.glGetUniformLocation(shader.getShaderProgram(), "cameraDir");
	GL20.glUniform3f(cameraDirUniform, -(float)Math.toRadians(entity.rotationPitch), (float)Math.toRadians(180+entity.rotationYaw), 0);
	int fovyUniform = GL20.glGetUniformLocation(shader.getShaderProgram(), "fovy");
	GL20.glUniform1f(fovyUniform, fov);
	int fovxUniform = GL20.glGetUniformLocation(shader.getShaderProgram(), "fovx");
	GL20.glUniform1f(fovxUniform, fov*Display.getWidth()/(float)Display.getHeight());
	int sphericalUniform = GL20.glGetUniformLocation(shader.getShaderProgram(), "spherical");
	GL20.glUniform1i(sphericalUniform, RayTracerSettings.spherical ? 1 : 0);
	int stereoscopicUniform = GL20.glGetUniformLocation(shader.getShaderProgram(), "stereoscopic3d");
	GL20.glUniform1i(stereoscopicUniform, RayTracerSettings.stereoscopic ? 1 : 0);
	int eyeWidthUniform = GL20.glGetUniformLocation(shader.getShaderProgram(), "eyeWidth");
	GL20.glUniform1f(eyeWidthUniform, 0.063f); //TODO input eyeWidth option
	
	if (!pauseRendering) {
		if (worldLoader == null) {
			worldLoader = new WorldLoader();
		}
		if (worldLoader.dimension != mc.world.provider.getDimension()) {
			worldLoader.dimension = mc.world.provider.getDimension();
		}
		worldLoader.updateWorld(entityPosX, entityPosY, entityPosZ, shader);

		//Setup view
		GL11.glMatrixMode(GL11.GL_PROJECTION);
		GL11.glPushMatrix();
		GL11.glLoadIdentity();
		GL11.glOrtho(-1, 1, -1, 1, -1, 1);
		GL11.glMatrixMode(GL11.GL_MODELVIEW);
		GL11.glPushMatrix();
		GL11.glLoadIdentity();

		//Bind vbo and texture
		GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, shader.getVbo());
		GL20.glEnableVertexAttribArray(0);
		GL20.glVertexAttribPointer(0, 2, GL11.GL_BYTE, false, 0, 0L);
		GL11.glBindTexture(GL11.GL_TEXTURE_2D, 8);

		//Render
		GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, 6);

		//Reset vbo and texture
		GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
		GL20.glDisableVertexAttribArray(0);
		GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);

		//Reset view
		GL11.glMatrixMode(GL11.GL_PROJECTION);
		GL11.glPopMatrix();
		GL11.glMatrixMode(GL11.GL_MODELVIEW);
		GL11.glPopMatrix();
	}
	
	//Stop using shader program
	GL20.glUseProgram(0);
}
 
开发者ID:18107,项目名称:MC-Ray-Tracer,代码行数:81,代码来源:RenderUtil.java

示例9: getUniformLocation

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
protected int getUniformLocation(final String uniformName) {
    return GL20.glGetUniformLocation(programId, uniformName);
}
 
开发者ID:Biacode,项目名称:bia-engine,代码行数:4,代码来源:ShaderProgram.java

示例10: storeUniformLocation

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
protected void storeUniformLocation(int programID){
	location = GL20.glGetUniformLocation(programID, name);
	if(location == NOT_FOUND){
		System.err.println("No uniform variable called \"" + name + "\" found for shader program: "+programID);
	}
}
 
开发者ID:TheThinMatrix,项目名称:LowPolyWater,代码行数:7,代码来源:Uniform.java

示例11: glGetUniformLocation

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public static int glGetUniformLocation(int programObj, CharSequence name)
{
    return arbShaders ? ARBShaderObjects.glGetUniformLocationARB(programObj, name) : GL20.glGetUniformLocation(programObj, name);
}
 
开发者ID:Notoh,项目名称:DecompiledMinecraft,代码行数:5,代码来源:OpenGlHelper.java

示例12: Uniform

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public Uniform(String uniformName, int programID) {
    this.uniformLocation = GL20.glGetUniformLocation(programID, uniformName);
    this.programID = programID;
    this.uniformName = uniformName;
}
 
开发者ID:Essentria,项目名称:Elgin-Plant-Game,代码行数:6,代码来源:Uniform.java

示例13: storeUniformLocation

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
protected void storeUniformLocation(int programID){
	location = GL20.glGetUniformLocation(programID, name);
	if(location == NOT_FOUND){
		System.err.println("No uniform variable called " + name + " found!");
	}
}
 
开发者ID:TheThinMatrix,项目名称:OcclusionQueries,代码行数:7,代码来源:Uniform.java

示例14: storeUniformLocation

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
protected void storeUniformLocation(int programID) {
    location = GL20.glGetUniformLocation(programID, name);
    if (location == NOT_FOUND) {
        System.err.println("No uniform variable called \"" + name + "\" found for shader program: " + programID);
    }
}
 
开发者ID:GryPLOfficial,项目名称:EcoSystem-Official,代码行数:7,代码来源:Uniform.java


注:本文中的org.lwjgl.opengl.GL20.glGetUniformLocation方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。