Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Media";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.067 c
2-1268654563
Thesis
2010-03-15 15:02
2010.08.27
Битовая логика


15-1263679001
Кто б сомневался
2010-01-17 00:56
2010.08.27
Закон об авторском праве


15-1274472622
RWolf
2010-05-22 00:10
2010.08.27
Induc v2.0


15-1264942022
Константинов
2010-01-31 15:47
2010.08.27
Безопасность ПК


15-1274747389
Юрий
2010-05-25 04:29
2010.08.27
С днем рождения ! 25 мая 2010 вторник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский