Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

gпопиксельное освещение


DoKi ©   (2008-03-17 15:12:00) 

Укажите где ошибка в шейдере
        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 22:27:00) [1]

> [18] DoKi   (17.03.08 22:08)

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


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

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

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

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


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

> [16] DoKi   (17.03.08 22:01)

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


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

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


@!!ex   (2008-03-17 21:34:00) [5]

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

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


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

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


Sergio666   (2008-03-17 21:02:00) [6]

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


@!!ex   (2008-03-17 21:01:00) [7]

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

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

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

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


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

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


Sergio666   (2008-03-17 20:49:00) [9]

Круто ты НАЧАЛ изучение с 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:38:00) [10]

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


Sergio666   (2008-03-17 20:22:00) [11]

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


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

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


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

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

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


@!!ex   (2008-03-17 19:47:00) [14]

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


@!!ex   (2008-03-17 19:46:00) [15]

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

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


Sergio666   (2008-03-17 19:40:00) [16]

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


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

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

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


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

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


@!!ex   (2008-03-17 18:55:00) [19]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо