本文整理匯總了TypeScript中gl-matrix.mat4.invert方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript mat4.invert方法的具體用法?TypeScript mat4.invert怎麽用?TypeScript mat4.invert使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類gl-matrix.mat4
的用法示例。
在下文中一共展示了mat4.invert方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: setFromCamera
public setFromCamera(
coords: Vector2,
scene: Scene,
camera: PerspectiveCamera,
object: Mesh
) {
if (camera && camera.isPespectiveCamera) {
this.ray.origin.copy(camera.position);
vec3.copy(cameraDirection, [coords.x, coords.y, 0.5]);
mat4.multiply(
inversedProjectionViewMatrix,
camera.projectionMatrix,
camera.worldInverseMatrix
);
mat4.invert(inversedProjectionViewMatrix, inversedProjectionViewMatrix);
vec3.transformMat4(
cameraDirection,
cameraDirection,
inversedProjectionViewMatrix
);
vec3.sub(cameraDirection, cameraDirection, camera.position.v);
vec3.normalize(cameraDirection, cameraDirection);
directionVector.set(
cameraDirection[0],
cameraDirection[1],
cameraDirection[2]
);
this.ray.direction.copy(directionVector);
}
}
示例2:
outMat3 = mat3.subtract(outMat3, mat3A, mat3B);
outMat3 = mat3.sub(outMat3, mat3A, mat3B);
outMat3 = mat3.multiplyScalar (outMat3, mat3A, 2);
outMat3 = mat3.multiplyScalarAndAdd (outMat3, mat3A, mat3B, 2);
outBool = mat3.exactEquals(mat3A, mat3B);
outBool = mat3.equals(mat3A, mat3B);
//mat4
outMat4 = mat4.create();
outMat4 = mat4.clone(mat4A);
outMat4 = mat4.copy(outMat4, mat4A);
outMat4 = mat4.fromValues(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
outMat4 = mat4.set(outMat4, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
outMat4 = mat4.identity(outMat4);
outMat4 = mat4.transpose(outMat4, mat4A);
outMat4Null = mat4.invert(outMat4, mat4A);
outMat4 = mat4.adjoint(outMat4, mat4A);
outVal = mat4.determinant(mat4A);
outMat4 = mat4.multiply(outMat4, mat4A, mat4B);
outMat4 = mat4.mul(outMat4, mat4A, mat4B);
outMat4 = mat4.translate(outMat4, mat4A, vec3A);
outMat4 = mat4.scale(outMat4, mat4A, vec3A);
outMat4Null = mat4.rotate(outMat4, mat4A, Math.PI, vec3A);
outMat4 = mat4.rotateX(outMat4, mat4A, Math.PI);
outMat4 = mat4.rotateY(outMat4, mat4A, Math.PI);
outMat4 = mat4.rotateZ(outMat4, mat4A, Math.PI);
outMat4 = mat4.fromTranslation(outMat4, vec3A);
outMat4Null = mat4.fromRotation(outMat4, Math.PI, vec3A);
outMat4 = mat4.fromScaling(outMat4, vec3A);
outMat4 = mat4.fromXRotation(outMat4, Math.PI);
outMat4 = mat4.fromYRotation(outMat4, Math.PI);
示例3:
outMat3 = mat3.subtract(outMat3, mat3A, mat3B);
outMat3 = mat3.sub(outMat3, mat3A, mat3B);
outMat3 = mat3.multiplyScalar (outMat3, mat3A, 2);
outMat3 = mat3.multiplyScalarAndAdd (outMat3, mat3A, mat3B, 2);
outBool = mat3.exactEquals(mat3A, mat3B);
outBool = mat3.equals(mat3A, mat3B);
//mat4
outMat4 = mat4.create();
outMat4 = mat4.clone(mat4A);
outMat4 = mat4.copy(outMat4, mat4A);
outMat4 = mat4.fromValues(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
outMat4 = mat4.set(outMat4, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
outMat4 = mat4.identity(outMat4);
outMat4 = mat4.transpose(outMat4, mat4A);
outMat4 = mat4.invert(outMat4, mat4A);
outMat4 = mat4.adjoint(outMat4, mat4A);
outVal = mat4.determinant(mat4A);
outMat4 = mat4.multiply(outMat4, mat4A, mat4B);
outMat4 = mat4.mul(outMat4, mat4A, mat4B);
outMat4 = mat4.translate(outMat4, mat4A, vec3A);
outMat4 = mat4.scale(outMat4, mat4A, vec3A);
outMat4 = mat4.rotate(outMat4, mat4A, Math.PI, vec3A);
outMat4 = mat4.rotateX(outMat4, mat4A, Math.PI);
outMat4 = mat4.rotateY(outMat4, mat4A, Math.PI);
outMat4 = mat4.rotateZ(outMat4, mat4A, Math.PI);
outMat4 = mat4.fromTranslation(outMat4, vec3A);
outMat4 = mat4.fromRotation(outMat4, Math.PI, vec3A);
outMat4 = mat4.fromScaling(outMat4, vec3A);
outMat4 = mat4.fromXRotation(outMat4, Math.PI);
outMat4 = mat4.fromYRotation(outMat4, Math.PI);
示例4: setUniforms
//.........這裏部分代碼省略.........
uniform.value[1],
uniform.value[2]
);
break;
}
case '4f': {
gl.uniform4f(
uniform.location,
uniform.value[0],
uniform.value[1],
uniform.value[2],
uniform.value[3]
);
break;
}
case '1iv': {
gl.uniform1iv(uniform.location, uniform.value);
break;
}
case '2iv': {
gl.uniform2iv(uniform.location, uniform.value);
break;
}
case '1fv': {
gl.uniform1fv(uniform.location, uniform.value);
break;
}
case '2fv': {
gl.uniform2fv(uniform.location, uniform.value);
break;
}
case '3fv': {
gl.uniform3fv(uniform.location, uniform.value);
break;
}
case '4fv': {
gl.uniform4fv(uniform.location, uniform.value);
break;
}
case 'Matrix3fv': {
gl.uniformMatrix3fv(uniform.location, false, uniform.value);
break;
}
case 'Matrix4fv': {
gl.uniformMatrix4fv(uniform.location, false, uniform.value);
break;
}
default:
}
});
if (!GL.webgl2) {
gl.uniformMatrix4fv(
this.uniforms.uProjectionMatrix.location,
false,
projectionMatrix
);
}
gl.uniformMatrix4fv(
this.uniforms.uModelViewMatrix.location,
false,
modelViewMatrix
);
gl.uniformMatrix4fv(
this.uniforms.uModelMatrix.location,
false,
modelMatrix
);
mat4.identity(inversedModelViewMatrix);
mat4.invert(inversedModelViewMatrix, modelMatrix);
mat3.identity(normalMatrix);
mat3.fromMat4(normalMatrix, inversedModelViewMatrix);
mat3.transpose(normalMatrix, normalMatrix);
gl.uniformMatrix3fv(
this.uniforms.uNormalMatrix.location,
false,
normalMatrix
);
// uDiffuse
gl.uniform3f(
this.uniforms.uDiffuse.location,
this.uniforms.uDiffuse.value[0],
this.uniforms.uDiffuse.value[1],
this.uniforms.uDiffuse.value[2]
);
// Camera
if (camera && this.uniforms.uCameraPosition) {
gl.uniform3f(
this.uniforms.uCameraPosition.location,
camera.position.v[0],
camera.position.v[1],
camera.position.v[2]
);
}
}
示例5: _updateProjectionMatrix
private _updateProjectionMatrix(): void {
mat4.ortho(this.projectionMatrix.rawElements, this.Left, this.Right, this.Bottom, this.Top, this.Near, this.Far);
mat4.invert(this.invProjectionMatrix.rawElements, this.projectionMatrix.rawElements);
this.__updateViewProjectionMatrix();
}