本文整理汇总了Java中org.joml.Matrix3f类的典型用法代码示例。如果您正苦于以下问题:Java Matrix3f类的具体用法?Java Matrix3f怎么用?Java Matrix3f使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Matrix3f类属于org.joml包,在下文中一共展示了Matrix3f类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: init
import org.joml.Matrix3f; //导入依赖的package包/类
@Override
public boolean init()
{
if (!initDisplay())
return false;
this.texCoordTransform = new Matrix3f();
this.model = new Matrix4f();
this.initVBO();
try
{
this.initShaderProgram(new ShaderProgram(IOUtils.inToStr(this.getClass().getResourceAsStream("/assets/opengb/shaders/base.vert")), IOUtils.inToStr(this.getClass().getResourceAsStream("/assets/opengb/shaders/base.frag"))));
} catch (IOException e)
{
throw new RuntimeException(e); // This shouldn't be possible
}
texture = new Texture();
texture.create(Constants.SCREEN_W, Constants.SCREEN_H, screenBuffer);
glClearColor(0.3f, 0.3f, 0.3f, 1.0f);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
return true;
}
示例2: testObObTipToTip
import org.joml.Matrix3f; //导入依赖的package包/类
public static void testObObTipToTip() {
Vector3f c0 = new Vector3f();
float EPSILON = 1E-4f;
/* Position the second box so that they "almost" intersect */
float a = (float) Math.sqrt(1 + 1) + (float) Math.sqrt(1 + 1);
Vector3f c1 = new Vector3f(a + EPSILON, 0, 0);
Matrix3f m = new Matrix3f().rotateXYZ(0, (float) Math.toRadians(45.0), 0);
Vector3f ux0 = m.getColumn(0, new Vector3f());
Vector3f uy0 = m.getColumn(1, new Vector3f());
Vector3f uz0 = m.getColumn(2, new Vector3f());
Vector3f ux1 = m.getColumn(0, new Vector3f());
Vector3f uy1 = m.getColumn(1, new Vector3f());
Vector3f uz1 = m.getColumn(2, new Vector3f());
Vector3f hs = new Vector3f(1);
boolean intersects = Intersectionf.testObOb(c0, ux0, uy0, uz0, hs, c1, ux1, uy1, uz1, hs);
assertFalse(intersects); // <- they do not intersect
/* Position the second box so that they do intersect */
c1 = new Vector3f((float) Math.sqrt(2) * 2 - EPSILON, 0, 0);
intersects = Intersectionf.testObOb(c0, ux0, uy0, uz0, hs, c1, ux1, uy1, uz1, hs);
assertTrue(intersects); // <- they do intersect
}
示例3: testObOb
import org.joml.Matrix3f; //导入依赖的package包/类
public static void testObOb() {
float a = (float) (Math.sqrt(2.0*2.0 + 2.0*2.0) + Math.sqrt(0.5*0.5 + 0.5*0.5));
float EPSILON = 1E-4f;
Vector3f c0 = new Vector3f(0, 0, a - EPSILON);
Vector3f hs0 = new Vector3f(0.5f, 0.5f, 0.5f);
Vector3f c1 = new Vector3f(0, 0, 0);
Vector3f hs1 = new Vector3f(2, 0.5f, 2);
Matrix3f m = new Matrix3f().rotateY((float) Math.toRadians(45));
Vector3f ux0 = m.getColumn(0, new Vector3f());
Vector3f uy0 = m.getColumn(1, new Vector3f());
Vector3f uz0 = m.getColumn(2, new Vector3f());
Vector3f ux1 = m.getColumn(0, new Vector3f());
Vector3f uy1 = m.getColumn(1, new Vector3f());
Vector3f uz1 = m.getColumn(2, new Vector3f());
boolean intersects = Intersectionf.testObOb(c0, ux0, uy0, uz0, hs0, c1, ux1, uy1, uz1, hs1);
assertTrue(intersects); // <- they DO intersect
c0 = new Vector3f(0, 0, a + EPSILON);
intersects = Intersectionf.testObOb(c0, ux0, uy0, uz0, hs0, c1, ux1, uy1, uz1, hs1);
assertFalse(intersects); // <- they do not intersect
}
示例4: renderParticles
import org.joml.Matrix3f; //导入依赖的package包/类
private void renderParticles(Window window, Camera camera, Scene scene) {
particlesShaderProgram.bind();
particlesShaderProgram.setUniform("texture_sampler", 0);
Matrix4f projectionMatrix = window.getProjectionMatrix();
particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix);
Matrix4f viewMatrix = camera.getViewMatrix();
IParticleEmitter[] emitters = scene.getParticleEmitters();
int numEmitters = emitters != null ? emitters.length : 0;
glDepthMask(false);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
Matrix3f aux = new Matrix3f();
for (int i = 0; i < numEmitters; i++) {
IParticleEmitter emitter = emitters[i];
InstancedMesh mesh = (InstancedMesh) emitter.getBaseParticle().getMesh();
Texture text = mesh.getMaterial().getTexture();
particlesShaderProgram.setUniform("numCols", text.getNumCols());
particlesShaderProgram.setUniform("numRows", text.getNumRows());
mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix, null);
}
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDepthMask(true);
particlesShaderProgram.unbind();
}
示例5: toDirectBuffer
import org.joml.Matrix3f; //导入依赖的package包/类
/**
* Stores matrix in a direct buffer.
*
* @param matrix Matrix to be stored in a direct buffer.
* @return Direct buffer containing matrix.
*/
public static FloatBuffer toDirectBuffer(Matrix3f matrix) {
FloatBuffer buffer = createFloatBuffer(9);
matrix.get(buffer);
buffer.flip();
return buffer;
}
示例6: setUniform
import org.joml.Matrix3f; //导入依赖的package包/类
public void setUniform(String uniformName, Matrix3f value) {
int loc = getUniformLocation(uniformName);
if(loc != -1) {
setUniform(getUniformLocation(uniformName), value);
}
}
示例7: setMatrix3f
import org.joml.Matrix3f; //导入依赖的package包/类
/**
* <p>
* Set a {@code mat3} value.
* </p>
*
* @param name The name of the uniform in the shader.
* @param value The value of the uniform.
*/
public final void setMatrix3f(String name, Matrix3f value)
{
if(!ShaderInternal.hasUniform(asset.shader, name) || !ShaderInternal.getUniformType(asset.shader, name).equals("mat3"))
{
Logger.logWarning("Shader: " + getShader().getName() + " does not contain a mat3 with the name: " + name);
return;
}
asset.values.put(name, value);
}
示例8: renderParticles
import org.joml.Matrix3f; //导入依赖的package包/类
private void renderParticles(Window window, Camera camera, Scene scene) {
particlesShaderProgram.bind();
particlesShaderProgram.setUniform("texture_sampler", 0);
Matrix4f projectionMatrix = transformation.getProjectionMatrix();
particlesShaderProgram.setUniform("projectionMatrix", projectionMatrix);
Matrix4f viewMatrix = transformation.getViewMatrix();
IParticleEmitter[] emitters = scene.getParticleEmitters();
int numEmitters = emitters != null ? emitters.length : 0;
glDepthMask(false);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
Matrix3f aux = new Matrix3f();
for (int i = 0; i < numEmitters; i++) {
IParticleEmitter emitter = emitters[i];
InstancedMesh mesh = (InstancedMesh)emitter.getBaseParticle().getMesh();
Texture text = mesh.getMaterial().getTexture();
particlesShaderProgram.setUniform("numCols", text.getNumCols());
particlesShaderProgram.setUniform("numRows", text.getNumRows());
mesh.renderListInstanced(emitter.getParticles(), true, transformation, viewMatrix, null);
}
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDepthMask(true);
particlesShaderProgram.unbind();
}
示例9: MatrixStack
import org.joml.Matrix3f; //导入依赖的package包/类
public MatrixStack(int size) {
this.size = size;
this.composeMatrixStack = new Matrix4f[size];
this.rotationMatrixStack = new Matrix3f[size];
fill();
}
示例10: fill
import org.joml.Matrix3f; //导入依赖的package包/类
private void fill() {
for (int i = 0; i < this.size; i++) {
composeMatrixStack[i] = new Matrix4f();
rotationMatrixStack[i] = new Matrix3f();
}
}
示例11: setTopRotation
import org.joml.Matrix3f; //导入依赖的package包/类
public void setTopRotation(Matrix3f rotationMatrix) {
topRotationMatrix().set(rotationMatrix);
}
示例12: topRotationMatrix
import org.joml.Matrix3f; //导入依赖的package包/类
/**
* @return A rotation matrix of the topMatrix matrix.
*/
public Matrix3f topRotationMatrix() {
return rotationMatrixStack[top];
}
示例13: updateCaches
import org.joml.Matrix3f; //导入依赖的package包/类
public void updateCaches(Matrix4f transformMatrix, Matrix3f rotationMatrix) {
this.transformCache.set(transformMatrix);
this.rotationCache.set(rotationMatrix);
this.dirty = false;
}
示例14: getCachedNonrelativeRotation
import org.joml.Matrix3f; //导入依赖的package包/类
public Matrix3f getCachedNonrelativeRotation() {
return rotationCache;
}
示例15: getInertia
import org.joml.Matrix3f; //导入依赖的package包/类
public Matrix3f getInertia() {
return inertia;
}