本文整理汇总了TypeScript中gl-matrix.mat4.perspective方法的典型用法代码示例。如果您正苦于以下问题:TypeScript mat4.perspective方法的具体用法?TypeScript mat4.perspective怎么用?TypeScript mat4.perspective使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gl-matrix.mat4
的用法示例。
在下文中一共展示了mat4.perspective方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: Float32Array
window.addEventListener('resize', ev => {
const
canvas = core.gl.canvas,
{offsetWidth: w, offsetHeight: h} = canvas
canvas.width = w
canvas.height = h
core.gl.viewport(0, 0, w, h)
const
ratio = {
screen: w / h,
w: (img as HTMLImageElement).width / w,
h: (img as HTMLImageElement).height / h,
}
ratio.screen > 1 ? ratio.h /= ratio.screen : ratio.w *= ratio.screen
const
mixes = new Float32Array([
-1 * ratio.w, ratio.h, .0, 1.0,
-1 * ratio.w, -1 * ratio.h, .0, .0,
ratio.w, ratio.h, 1.0, 1.0,
ratio.w, -1 * ratio.h, 1.0, .0
]),
bSize = mixes.BYTES_PER_ELEMENT
core.bufferSubData(core.gl.ARRAY_BUFFER, 0, mixes)
mat4.perspective(pMatrix, Math.PI / 6, w / h, 0, 100)
core.uniformMatrix4fv(program, 'pMatrix', pMatrix)
})
示例2: projection_matrix
function projection_matrix(out: mat4, width: number, height: number) {
let aspectRatio = width / height;
let fieldOfView = Math.PI / 4;
let near = 0.01;
let far = 1000;
mat4.perspective(out, fieldOfView, aspectRatio, near, far);
}
示例3: updateProjectionMatrix
public updateProjectionMatrix() {
mat4.perspective(
this.projectionMatrix,
this.fov,
this.aspect,
this.near,
this.far
);
}
示例4:
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);
outMat4 = mat4.fromZRotation(outMat4, Math.PI);
outMat4 = mat4.fromRotationTranslation(outMat4, quatA, vec3A);
outVec3 = mat4.getTranslation(outVec3, mat4A);
outVec3 = mat4.getScaling(outVec3, mat4A);
outQuat = mat4.getRotation(outQuat, mat4A);
outMat4 = mat4.fromRotationTranslationScale(outMat4, quatA, vec3A, vec3B);
outMat4 = mat4.fromRotationTranslationScaleOrigin(outMat4, quatA, vec3A, vec3B, vec3A);
outMat4 = mat4.fromQuat(outMat4, quatB);
outMat4 = mat4.frustum(outMat4, -1, 1, -1, 1, -1, 1);
outMat4 = mat4.perspective(outMat4, Math.PI, 1, 0, 1);
outMat4 = mat4.perspectiveFromFieldOfView(outMat4, {upDegrees:Math.PI, downDegrees:-Math.PI, leftDegrees:-Math.PI, rightDegrees:Math.PI}, 1, 0);
outMat4 = mat4.ortho(outMat4, -1, 1, -1, 1, -1, 1);
outMat4 = mat4.lookAt(outMat4, vec3A, vec3B, vec3A);
outStr = mat4.str(mat4A);
outVal = mat4.frob(mat4A);
outMat4 = mat4.add(outMat4, mat4A, mat4B);
outMat4 = mat4.subtract(outMat4, mat4A, mat4B);
outMat4 = mat4.sub(outMat4, mat4A, mat4B);
outMat4 = mat4.multiplyScalar (outMat4, mat4A, 2);
outMat4 = mat4.multiplyScalarAndAdd (outMat4, mat4A, mat4B, 2);
outBool = mat4.exactEquals(mat4A, mat4B);
outBool = mat4.equals(mat4A, mat4B);
// quat
var deg90 = Math.PI / 2;
示例5: getForm
selfReferencing: true,
width: bufferSize,
height: bufferSize,
bufferStructure: [
{
flipY: true,
wrap: 'REPEAT',
},
],
})
// ===== scene =====
const planMat = mat4.fromTranslation(mat4.create(), [0, 0, -3])
const rotation = 0.001
const projection = mat4.perspective(mat4.create(), 45, 1, 0.01, 10)
const form = getForm(painter, 'plane').update(plane(2, 2))
const shade = getShade(painter, 'plane').update({
vert: planeVert,
frag: planeFrag,
})
export const sketch = getSketch(painter, 'plane').update({
form,
shade,
uniforms: {
projection,
transform: () => mat4.rotateY(planMat, planMat, rotation),
tex: () => automaton.image(),