Конференция "Игры" » Подскажите примеры использования GLSL! [Delphi, Windows]
 
  • robertson (23.10.09 21:59) [0]
    Сабж.
  • @!!ex © (23.10.09 22:10) [1]
    //VS
    varying vec3 VertexPos;
    varying vec3 EyePos;
    varying vec3 VertexModelPos;
    void main(void)
    {
     VertexPos = vec3(gl_Vertex);
     VertexModelPos = vec3(gl_ModelViewMatrix*gl_Vertex);
     EyePos = -vec3(gl_ModelViewMatrix*gl_Vertex);
     EyePos.z = 0.0;
     gl_Position = ftransform();
    }

    //FS
    varying vec3 VertexPos;
    varying vec3 VertexModelPos;
    varying vec3 EyePos;

    const float Width = 0.5575;

    float md(float v1, float v2)
    {
     float v = floor(v1/v2);
     return (v1-v*v2);
    }

    void main(void)
    {
     float dist = distance(EyePos,VertexModelPos);
     vec4 emptycolor = vec4(0.0,0.0,0.0,0.0);
     vec4 fillcolor = vec4(1.0,1.0,1.0,1.0-1.0/(100.0/dist));
     vec4 color = emptycolor;
     
     
     if (dist<100.0 && (fract(abs(VertexPos.x))<Width*(1.0-fillcolor.w) || fract(abs(VertexPos.y))<Width*(1.0-fillcolor.w)))
       color = fillcolor;
     gl_FragColor = color;
    }
  • @!!ex © (23.10.09 22:11) [2]
    Рисует сетку на полигоне
  • robertson (23.10.09 22:21) [3]
    Я имел в виду полностью, а не только код шейдера
  • @!!ex © (23.10.09 22:26) [4]
    Что значит *полностью*?
  • @!!ex © (23.10.09 22:28) [5]
    Вот использование:
    FCoordPlane.SetShader();
    glColor4f(1,0,1,1);
    glBegin(GL_QUADS);
     glVertex3f(-4000,-4000,0);
     glVertex3f(+4000,-4000,0);
     glVertex3f(+4000,+4000,0);
     glVertex3f(-4000,+4000,0);
    glEnd();
    glColor4f(1,1,1,1);
    FCoordPlane.Reset();

  • Sergey (02.11.09 23:54) [6]
    robertson

    Shaders demo
    GLSL BUMP
    GLSL Water
    GLSL Glass
    GLSL BUMP & PARALLAX
    GLSL Morfing Animation
    Skinned Mesh + GLSL Bump


    http://pascalgames.net/index.php?action=downloads;cat=4
 
Конференция "Игры" » Подскажите примеры использования GLSL! [Delphi, Windows]
Есть новые Нет новых   [134428   +41][b:0][p:0.001]