當前位置: 首頁>>代碼示例>>Java>>正文


Java GL20.glUniform1i方法代碼示例

本文整理匯總了Java中org.lwjgl.opengl.GL20.glUniform1i方法的典型用法代碼示例。如果您正苦於以下問題:Java GL20.glUniform1i方法的具體用法?Java GL20.glUniform1i怎麽用?Java GL20.glUniform1i使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.lwjgl.opengl.GL20的用法示例。


在下文中一共展示了GL20.glUniform1i方法的14個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: 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

示例2: loadTexUnit

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
public void loadTexUnit(int texUnit) {
	if (!used || currentValue != texUnit) {
		GL20.glUniform1i(super.getLocation(), texUnit);
		used = true;
		currentValue = texUnit;
	}
}
 
開發者ID:TheThinMatrix,項目名稱:LowPolyWater,代碼行數:8,代碼來源:UniformSampler.java

示例3: glUniform1i

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
public static void glUniform1i(int location, int v0)
{
    if (arbShaders)
    {
        ARBShaderObjects.glUniform1iARB(location, v0);
    }
    else
    {
        GL20.glUniform1i(location, v0);
    }
}
 
開發者ID:Notoh,項目名稱:DecompiledMinecraft,代碼行數:12,代碼來源:OpenGlHelper.java

示例4: setSampler2d

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
public void setSampler2d(String label, int value, int activeTexture){
    int loc = getUniform(label);
    GL20.glUniform1i(loc, 0);
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + activeTexture);
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, value);
}
 
開發者ID:SerenityEnterprises,項目名稱:SerenityCE,代碼行數:8,代碼來源:Shader.java

示例5: apply

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
@Override
public void apply(Program program, Texture value)
{
	int location = program.findUniformLocation(this.getName());
	GL20.glUniform1i(location, this.sampler);
	GL13.glActiveTexture(GL13.GL_TEXTURE0 + this.sampler);
	value.bind();
}
 
開發者ID:andykuo1,項目名稱:candlelight,代碼行數:9,代碼來源:PropertyTexture.java

示例6: loadInt

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
protected void loadInt(int location, int value) {
	GL20.glUniform1i(location, value);
}
 
開發者ID:marcioz98,項目名稱:MRCEngine,代碼行數:4,代碼來源:ShaderProgram.java

示例7: 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

示例8: setInteger

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
public void setInteger(String label, int value){
    // Sets the value.
    GL20.glUniform1i(getUniform(label), value);
}
 
開發者ID:SerenityEnterprises,項目名稱:SerenityCE,代碼行數:5,代碼來源:Shader.java

示例9: loadData

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
public void loadData(int value) {
    GL20.glUniform1i(uniformLocation, value);
}
 
開發者ID:Essentria,項目名稱:Elgin-Plant-Game,代碼行數:4,代碼來源:Uniform1i.java

示例10: apply

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
@Override
public void apply(Program program, Boolean value)
{
	int location = program.findUniformLocation(this.getName());
	GL20.glUniform1i(location, value ? 1 : 0);
}
 
開發者ID:andykuo1,項目名稱:candlelight,代碼行數:7,代碼來源:PropertyBool.java

示例11: apply

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
@Override
public void apply(Program program, Integer value)
{
	int location = program.findUniformLocation(this.getName());
	GL20.glUniform1i(location, value);
}
 
開發者ID:andykuo1,項目名稱:candlelight,代碼行數:7,代碼來源:PropertyInt.java

示例12: renderWorld

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
/**
 * Render the world.
 * Called between {@link net.minecraft.client.renderer.EntityRenderer#renderWorld(float, long) renderWorld}
 * and {@link net.minecraft.client.renderer.EntityRenderer#renderWorldPass(int, float, long) renderWorldPass}
 */
public void renderWorld(EntityRenderer er, Minecraft mc, Framebuffer framebuffer, Shader shader,
		int[] framebufferTextures, float partialTicks, long finishTimeNano, int width, int height, float sizeIncrease) {
	//save the players state
	player = mc.getRenderViewEntity();
	yaw = player.rotationYaw;
	pitch = player.rotationPitch;
	prevYaw = player.prevRotationYaw;
	prevPitch = player.prevRotationPitch;

	//clear the primary framebuffer
	mc.getFramebuffer().framebufferClear();
	//clear the secondary framebuffer
	framebuffer.framebufferClear();
	//bind the secondary framebuffer
	framebuffer.bindFramebuffer(false);

	//displayWidth and displayHeight are called during world rendering
	//set them to the secondary framebuffer dimensions
	mc.displayWidth = (int)(height*sizeIncrease);
	mc.displayHeight = (int)(height*sizeIncrease); //Must be square

	RenderUtil.partialWidth = mc.displayWidth; //TODO is this even needed?
	RenderUtil.partialHeight = mc.displayHeight; //TODO remove

	RenderUtil.render360 = true;

	Globe globe = globes[globeIndex];
	for (int i=0; i<globe.getCount(); i++) {
		// set camera/player rotation state (read by hooks at the correct moment)
		coordFrame = globe.getCoordFrame(i);
		playerFov = globe.getFov(i);

		// the forward vector is the opposite direction of the z-axis
		float x = -coordFrame.get(2);
		float y = -coordFrame.get(6);
		float z = -coordFrame.get(10);

		// calculate the delta yaw/pitch to point the player
		float lon = (float)Math.atan2(x, -z);
		float lat = (float)Math.atan2(y, Math.sqrt(x*x+z*z));
		playerDeltaYaw = lon;
		playerDeltaPitch = lat;

		// render to texture
		OpenGlHelper.glFramebufferTexture2D(OpenGlHelper.GL_FRAMEBUFFER, OpenGlHelper.GL_COLOR_ATTACHMENT0, GL11.GL_TEXTURE_2D, framebufferTextures[i], 0);
		GlStateManager.bindTexture(0);
		er.renderWorldPass(2, partialTicks, finishTimeNano);

		// reset player view
		player.rotationYaw = yaw;
		player.rotationPitch = pitch;
		player.prevRotationYaw = prevYaw;
		player.prevRotationPitch = prevPitch;
	}

	//reset displayWidth and displayHeight to the primary framebuffer dimensions
	mc.displayWidth = width;
	mc.displayHeight = height;

	//reset viewport to full screen
	GlStateManager.viewport(0, 0, width, height);
	//bind primary framebuffer
	mc.getFramebuffer().bindFramebuffer(false);

	if (!getResizeGui() || mc.gameSettings.hideGUI) {
		GL20.glUseProgram(shader.getShaderProgram());
		int cursorUniform = GL20.glGetUniformLocation(shader.getShaderProgram(), "drawCursor");
		GL20.glUniform1i(cursorUniform, 0);
		runShader(mc, shader, framebufferTextures);
	}
}
 
開發者ID:shaunlebron,項目名稱:flex-fov,代碼行數:77,代碼來源:RenderMethod.java

示例13: setUniform

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
/**
    * Sets the specified uniform with the specified value
    * @param uniform
    * @param value The integer value
    */
   public void setUniform(String uniform, int value) {
GL20.glUniform1i(uniforms.get(uniform), value);
   }
 
開發者ID:camilne,項目名稱:open-world,代碼行數:9,代碼來源:Shader.java

示例14: set

import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
/**Set a boolean value on the shader
 * 
 * @param uniform name of the uniform
 * @param value the value of the boolean
 */
public void set(String uniform, boolean value){
	GL20.glUniform1i(getUniform(uniform), value ? 1 : 0);
}
 
開發者ID:tek256,項目名稱:LD38,代碼行數:9,代碼來源:Shader.java


注:本文中的org.lwjgl.opengl.GL20.glUniform1i方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。