Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

gпопиксельное освещение   Найти похожие ветки 

 
DoKi   (2008-03-17 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 ©   (2008-03-17 18:55) [1]

Все запускается, но не правильно освещается?
А это ничего, что источник освещения в глобальных координатах, а нормаль - в локальных координатах вершины?


 
DoKi   (2008-03-17 19:11) [2]

а нормаль самому нужно задавать?


 
DoKi   (2008-03-17 19:19) [3]

изменил на uniform vec3 Normal;
и добвил  glUniform3fARB ( shader_normal, 1, 0, 0);

всё равно не освещает


 
Sergio666 ©   (2008-03-17 19:40) [4]

Влючи свет (GL_LIGHT0) и используй как источник света gl_LightSource[0].position, а для нормали normal = gl_NormalMatrix * gl_Normal;


 
@!!ex ©   (2008-03-17 19:46) [5]

> glUniform3fARB ( shader_normal, 1, 0, 0);

Что это??? И как оно поможет в преобразовании??


 
@!!ex ©   (2008-03-17 19:47) [6]

Я надеюсь, тыж понимаешь, что в случае жесткого задания параметров освещение будет абсолютно равномерное?
Как насчет векторы нормализовать?


 
Sergio666 ©   (2008-03-17 20:00) [7]

Короче говоря - надо еще поизучать шейдеры :)

Кстати, @!!ex, это ты gamedev"e?


 
DoKi   (2008-03-17 20:13) [8]

я и начал с этого примера изучать(на red monkey работает


 
Sergio666 ©   (2008-03-17 20:22) [9]

А что у тебя конкретно не работает? Раскажи и покажи код отрисовки (вместе с glBegin..glEnd или что там у тебя).
Кстати, если тупо надо найти ошибки в шейдере (ну, типа, перед запуском проверить на "правильность") -  есть такая програма GLSL Validate от 3DLabs. Мне она помогает :)


 
DoKi   (2008-03-17 20:38) [10]

вот исходник
www.delphisources.ru/pages/sources/graph/2007_year/igrodel_shaders.html
там всё работает но нет освещения
я хотел переделть с освещением


 
Sergio666 ©   (2008-03-17 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   (2008-03-17 20:58) [12]

Sergio666
большое спасибо


 
@!!ex ©   (2008-03-17 21:01) [13]

> Кстати, @!!ex, это ты gamedev"e?

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

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

Очень помогает Render MOnkey от ATI. :)
Лично мне. Учитывая ее возможности по написанию шейдеров....
Учитывая туеву хучу примеров... :)


 
Sergio666 ©   (2008-03-17 21:02) [14]

@!!ex, ну там такой ник тоже есть. Это ты же?
Render MOnkey, наверно много весит. Мне не потянуть... :)
Я все испробую у себя в программах :)


 
@!!ex ©   (2008-03-17 21:34) [15]

> @!!ex, ну там такой ник тоже есть. Это ты же?

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


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

Чего-то около 60 метров.
Но оно того стоит.


 
DoKi   (2008-03-17 22:01) [16]

В Render MOnkey в папке examplex есть папка gl2
так эти примеры что будут работать в opengl2?????????


 
@!!ex ©   (2008-03-17 22:02) [17]

> [16] DoKi   (17.03.08 22:01)

У меня в 1.5 все работают.


 
DoKi   (2008-03-17 22:08) [18]

то есть можно скопировать
//////vertex_shader.txt/////

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

задать переменные и всё будет рботать??круто


 
@!!ex ©   (2008-03-17 22:27) [19]

> [18] DoKi   (17.03.08 22:08)

Да, но так будут работать только простые эффекты, с одним проходом, без RTT и т.д.
Для сложных придется повозится.
Но шейдеры там вполне рабочие, их можно использовать без изменений.
Я, лично, новые шейдеры пишу сначала в RM, отлаживаю, коэфициенты подбираю, а потом уже внедряю в код.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.066 c
2-1268987208
Den
2010-03-19 11:26
2010.08.27
Какое событие происходит?


2-1266564186
oleg1963lora
2010-02-19 10:23
2010.08.27
Как маскировать исключение EDatabaseError?


2-1272603366
oleg1963lora
2010-04-30 08:56
2010.08.27
А что у нас сегодня в DataSet e?


2-1270210504
Вэн
2010-04-02 16:15
2010.08.27
Апдейтер для ММО


2-1268575722
vovka-x13
2010-03-14 17:08
2010.08.27
Определение текущей страницы в браузера