forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   View и Projection матрица (http://forum.boolean.name/showthread.php?t=19206)

Nikich 01.06.2014 16:46

View и Projection матрица
 
Код:

//Projection матрица
var tan=Math.tan(angle),

A=-(zMax+zMin)/(zMax-zMin),
B=(-2*zMax*zMin)/(zMax-zMin);

return [
.5/tan, 0 ,  0, 0,
 0, .5*a/tan,  0, 0,
0, 0,        A, -1,
0, 0,        B, 0
];

...

//View матрица
//this.at.v - вектор, показывающий куда смотрит камера
//this.eye - вектор, показывающий местоположение камеры
//this.up - вектор (0,1,0)
var zaxis = new Vec3(this.at.v.x-this.eye.v.x,this.at.v.y-this.eye.v.y,this.at.v.z-this.eye.v.z).normal();
var xaxis = this.up.cross(zaxis).normal();
var yaxis = zaxis.cross(xaxis);

return [
xaxis.v.x,yaxis.v.x,zaxis.v.x,0,
xaxis.v.y,yaxis.v.y,zaxis.v.y,0,
xaxis.v.z,yaxis.v.z,zaxis.v.z,0,
-xaxis.dot(this.eye),-yaxis.dot(this.eye),-zaxis.dot(this.eye),1
];

ЧЯДНТ? В шейдере умножаю перпективу на вид на модель.
Использовать библиотеки не хочу, целью является получить опыт в математике.


Часовой пояс GMT +4, время: 11:49.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot