Example #1
0
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 );
}
Example #2
0
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);
}
Example #3
0
    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");
    }
Example #4
0
        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");
        }
Example #5
0
        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");
        }
Example #6
0
    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");
    }
Example #7
0
    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");
    }
Example #8
0
void shr_vmath_fwrap_vsin_(double *X, double *Y, int *n)
{
   vsin(X, Y, *n, 1, 1);
}