本文整理匯總了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);
}
示例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;
}
}
示例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);
}
}
示例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);
}
示例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();
}
示例6: loadInt
import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
protected void loadInt(int location, int value) {
GL20.glUniform1i(location, value);
}
示例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);
}
示例8: setInteger
import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
public void setInteger(String label, int value){
// Sets the value.
GL20.glUniform1i(getUniform(label), value);
}
示例9: loadData
import org.lwjgl.opengl.GL20; //導入方法依賴的package包/類
public void loadData(int value) {
GL20.glUniform1i(uniformLocation, value);
}
示例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);
}
示例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);
}
示例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);
}
}
示例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);
}
示例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);
}