Главная страница
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.074 c
15-1273726474
Дмитрий С
2010-05-13 08:54
2010.08.27
Откуда береться точка?


2-1272006939
wancuver
2010-04-23 11:15
2010.08.27
Как выполнить поиск в memo правильно..?


2-1269287735
Сергей
2010-03-22 22:55
2010.08.27
Вращение объектов (шара вокруг своей оси)


4-1236865472
m-dima
2009-03-12 16:44
2010.08.27
PBT_APMQUERYSUSPEND - как различить Sleep & Hypernate?


4-1237892274
Alx2k
2009-03-24 13:57
2010.08.27
Получить оверлейный значок