Конференция "Media" » gпопиксельное освещение
 
  • DoKi (17.03.08 15:12) [0]
    Укажите где ошибка в шейдере
            glUniform1fARB( shader_ambient, 0.6);//интенсивность 0,6
            glUniform4fARB( shader_color, 0, 0, 0,0);//цвет
           glUniform3fARB ( shader_light , -1, -1, 0);//источник освещения

    //////vertex_shader.txt/////
    varying vec3 Normal;
    void main(void)
    {

     gl_Position = ftransform();
     Normal = gl_Normal;
    }

    ///////////fragment_shader.txt///////
    varying vec3 Normal;
    uniform vec3 light;
    uniform vec4 color;
    uniform float ambient;

    void main(void)
    {
     gl_FragColor = color * ambient* dot(Normal, light);//покисельн освещение
    }
  • @!!ex © (17.03.08 18:55) [1]
    Все запускается, но не правильно освещается?
    А это ничего, что источник освещения в глобальных координатах, а нормаль - в локальных координатах вершины?
  • DoKi (17.03.08 19:11) [2]
    а нормаль самому нужно задавать?
  • DoKi (17.03.08 19:19) [3]
    изменил на uniform vec3 Normal;
    и добвил  glUniform3fARB ( shader_normal, 1, 0, 0);

    всё равно не освещает
  • Sergio666 © (17.03.08 19:40) [4]
    Влючи свет (GL_LIGHT0) и используй как источник света gl_LightSource[0].position, а для нормали normal = gl_NormalMatrix * gl_Normal;
  • @!!ex © (17.03.08 19:46) [5]
    > glUniform3fARB ( shader_normal, 1, 0, 0);

    Что это??? И как оно поможет в преобразовании??
  • @!!ex © (17.03.08 19:47) [6]
    Я надеюсь, тыж понимаешь, что в случае жесткого задания параметров освещение будет абсолютно равномерное?
    Как насчет векторы нормализовать?
  • Sergio666 © (17.03.08 20:00) [7]
    Короче говоря - надо еще поизучать шейдеры :)

    Кстати, @!!ex, это ты gamedev'e?
  • DoKi (17.03.08 20:13) [8]
    я и начал с этого примера изучать(на red monkey работает
  • Sergio666 © (17.03.08 20:22) [9]
    А что у тебя конкретно не работает? Раскажи и покажи код отрисовки (вместе с glBegin..glEnd или что там у тебя).
    Кстати, если тупо надо найти ошибки в шейдере (ну, типа, перед запуском проверить на "правильность") -  есть такая програма GLSL Validate от 3DLabs. Мне она помогает :)
  • DoKi (17.03.08 20:38) [10]
    вот исходник
    www.delphisources.ru/pages/sources/graph/2007_year/igrodel_shaders.html
    там всё работает но нет освещения
    я хотел переделть с освещением
  • Sergio666 © (17.03.08 20:49) [11]
    Круто ты НАЧАЛ изучение с parallax mapping'а :)

    Лучше скачай себе GLSL specification, и сам напиши небольшую програмку, которая выводила бы что-то типа
    glBegin(GL_QUADS);
    glNormal3f(0, 1, 0);
    glVertex(-x, 0, z);
    glVertex( x, 0, z);
    glVertex( x, 0, -z);
    glVertex(-x, 0, -z);
    glEnd;

    С таким шейдером
    VERT

    varying vec3 normal;
    void main()
    {
    normal = gl_NormalMatrix * gl_Normal;
    gl_Position = ftransform();
    }

    FRAG
    varying vec3 normal;
    void main()
    {
    vec3 nNorm = normalize(normal);
    vec3 lPos = normalize(gl_LightSource[0].position);
    float LdotN = dot(nNorm, lPos);
    gl_FragColor = vec4(LdotN);
    }

    Самый простой шейдер, а там уже будеш добавлять функциональность.
  • DoKi (17.03.08 20:58) [12]
    Sergio666
    большое спасибо
  • @!!ex © (17.03.08 21:01) [13]
    > Кстати, @!!ex, это ты gamedev'e?

    Не понял вопроса.

    > [9] Sergio666 ©   (17.03.08 20:22)

    Очень помогает Render MOnkey от ATI. :)
    Лично мне. Учитывая ее возможности по написанию шейдеров....
    Учитывая туеву хучу примеров... :)
  • Sergio666 © (17.03.08 21:02) [14]
    @!!ex, ну там такой ник тоже есть. Это ты же?
    Render MOnkey, наверно много весит. Мне не потянуть... :)
    Я все испробую у себя в программах :)
  • @!!ex © (17.03.08 21:34) [15]
    > @!!ex, ну там такой ник тоже есть. Это ты же?

    На планете один человек с таким ником. Я проверял. :)


    > Render MOnkey, наверно много весит. Мне не потянуть... :
    > )
    > Я все испробую у себя в программах :)

    Чего-то около 60 метров.
    Но оно того стоит.
  • DoKi (17.03.08 22:01) [16]
    В Render MOnkey в папке examplex есть папка gl2
    так эти примеры что будут работать в opengl2?????????
  • @!!ex © (17.03.08 22:02) [17]
    > [16] DoKi   (17.03.08 22:01)

    У меня в 1.5 все работают.
  • DoKi (17.03.08 22:08) [18]
    то есть можно скопировать
    //////vertex_shader.txt/////

    ///////////fragment_shader.txt///////

    задать переменные и всё будет рботать??круто
  • @!!ex © (17.03.08 22:27) [19]
    > [18] DoKi   (17.03.08 22:08)

    Да, но так будут работать только простые эффекты, с одним проходом, без RTT и т.д.
    Для сложных придется повозится.
    Но шейдеры там вполне рабочие, их можно использовать без изменений.
    Я, лично, новые шейдеры пишу сначала в RM, отлаживаю, коэфициенты подбираю, а потом уже внедряю в код.
 
Конференция "Media" » gпопиксельное освещение
Есть новые Нет новых   [133929   +473][b:0][p:0.001]