void mrotate( mat* ma, const triple* v, f32 a ){ f32 c = vcos( a ); f32 s = vsin( a ); f32 t = 1 - c; static mat m; m.m[ 0 ][ 0 ] = t * v->x * v->x + c; m.m[ 0 ][ 1 ] = t * v->x * v->y + s * v->z; m.m[ 0 ][ 2 ] = t * v->x * v->z - s * v->y; m.m[ 0 ][ 3 ] = 0; m.m[ 1 ][ 0 ] = t * v->x * v->y - s * v->z; m.m[ 1 ][ 1 ] = t * v->y * v->y + c; m.m[ 1 ][ 2 ] = t * v->y * v->z + s * v->x; m.m[ 1 ][ 3 ] = 0; m.m[ 2 ][ 0 ] = t * v->x * v->z + s * v->y; m.m[ 2 ][ 1 ] = t * v->y * v->z - s * v->x; m.m[ 2 ][ 2 ] = t * v->z * v->z + c; m.m[ 2 ][ 3 ] = 0; m.m[ 3 ][ 0 ] = 0; m.m[ 3 ][ 1 ] = 0; m.m[ 3 ][ 2 ] = 0; m.m[ 3 ][ 3 ] = 1; mmult( ma, &m ); }
void CMatrix33::SetRotation(const CVector3D& axis, float ang) { float nx = axis.m_X; float ny = axis.m_Y; float nz = axis.m_Z; e[0][0] = nx*nx*vsin(ang) + cos(ang); e[0][1] = nx*ny*vsin(ang) - nz*sin(ang); e[0][2] = nx*nz*vsin(ang) + ny*sin(ang); e[1][0] = nx*ny*vsin(ang) + nz*sin(ang); e[1][1] = ny*ny*vsin(ang) + cos(ang); e[1][2] = ny*nz*vsin(ang) - nx*sin(ang); e[2][0] = nx*nz*vsin(ang) - ny*sin(ang); e[2][1] = ny*nz*vsin(ang) + nx*sin(ang); e[2][2] = nz*nz*vsin(ang) + cos(ang); }
Tonemap() { std::ifstream vsin("../examples/shaders/screenquad.vert", std::ios::in); const std::string &vs = std::string((std::istreambuf_iterator<char>(vsin)), std::istreambuf_iterator<char>()); std::ifstream fsin("../examples/shaders/tonemap.frag", std::ios::in); const std::string &fs = std::string((std::istreambuf_iterator<char>(fsin)), std::istreambuf_iterator<char>()); Program = ProgramShaderLoading::LoadProgram( GL_VERTEX_SHADER, vs.c_str(), GL_FRAGMENT_SHADER, fs.c_str()); AssignSamplerNames(Program, "tex"); }
IBLShader() { std::ifstream vsin("../examples/shaders/screenquad.vert", std::ios::in); const std::string &vs = std::string((std::istreambuf_iterator<char>(vsin)), std::istreambuf_iterator<char>()); std::ifstream fsin("../examples/shaders/ibl.frag", std::ios::in); const std::string &fs = std::string((std::istreambuf_iterator<char>(fsin)), std::istreambuf_iterator<char>()); Program = ProgramShaderLoading::LoadProgram( GL_VERTEX_SHADER, vs.c_str(), GL_FRAGMENT_SHADER, fs.c_str()); AssignSamplerNames(Program, "VIEWDATA", "IBLDATA", "ntex", "ctex", "dtex", "probe", "dfg"); }
ImportanceSamplingForSpecularCubemap() { std::ifstream vsin("../examples/shaders/screenquad.vert", std::ios::in); const std::string &vs = std::string((std::istreambuf_iterator<char>(vsin)), std::istreambuf_iterator<char>()); std::ifstream fsin("../examples/shaders/importance_sampling_specular.frag", std::ios::in); const std::string &fs = std::string((std::istreambuf_iterator<char>(fsin)), std::istreambuf_iterator<char>()); Program = ProgramShaderLoading::LoadProgram( GL_VERTEX_SHADER, vs.c_str(), GL_FRAGMENT_SHADER, fs.c_str()); AssignSamplerNames(Program, "Matrix", "tex", "samples"); }
Skybox() { std::ifstream vsin("../examples/shaders/skybox.vert", std::ios::in); const std::string &vs = std::string((std::istreambuf_iterator<char>(vsin)), std::istreambuf_iterator<char>()); std::ifstream fsin("../examples/shaders/skybox.frag", std::ios::in); const std::string &fs = std::string((std::istreambuf_iterator<char>(fsin)), std::istreambuf_iterator<char>()); Program = ProgramShaderLoading::LoadProgram( GL_VERTEX_SHADER, vs.c_str(), GL_FRAGMENT_SHADER, fs.c_str()); AssignSamplerNames(Program, "Matrixes", "skytexture"); }
ObjectShader() { std::ifstream vsin("../examples/shaders/object.vert", std::ios::in); const std::string &vs = std::string((std::istreambuf_iterator<char>(vsin)), std::istreambuf_iterator<char>()); std::ifstream fsin("../examples/shaders/object_gbuffer.frag", std::ios::in); const std::string &fs = std::string((std::istreambuf_iterator<char>(fsin)), std::istreambuf_iterator<char>()); Program = ProgramShaderLoading::LoadProgram( GL_VERTEX_SHADER, vs.c_str(), GL_FRAGMENT_SHADER, fs.c_str()); AssignSamplerNames(Program, "ViewMatrices", "ObjectData", "tex"); }
void shr_vmath_fwrap_vsin_(double *X, double *Y, int *n) { vsin(X, Y, *n, 1, 1); }