Create site free
Шейдеры - Решение серьезных вопросов - Разработка игр на Game Maker (Advanced Mode) - Форум Game Maker. Разработка игр.
Здравствуй Гость | Перейти на сайт

Главная | Форум | Регистрация | Войти
gmaker.net ;) [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Advanced Mode) » Решение серьезных вопросов » Шейдеры (знаю что звучит странно)
Шейдеры
Maverick Дата: Четверг, 01.01.2009, 14:04 | Сообщение # 1
Хоть палкой гони
Группа: Высший Советник
Сообщений: 781
Статус: Offline
Кто знает вообще язык шейдеров? Тока не тот, который похож на С++, а более простой, типа mul, add, phase и прочее
 
NewStrannik Дата: Четверг, 01.01.2009, 14:16 | Сообщение # 2
Всех уже задолбал
Группа: Проверенные
Сообщений: 808
Статус: Offline
А HLSL чем не приглянулся?
 
Maverick Дата: Четверг, 01.01.2009, 14:16 | Сообщение # 3
Хоть палкой гони
Группа: Высший Советник
Сообщений: 781
Статус: Offline
Тем что в Ultimate 3D НЕТ его :P
 
NewStrannik Дата: Четверг, 01.01.2009, 14:34 | Сообщение # 4
Всех уже задолбал
Группа: Проверенные
Сообщений: 808
Статус: Offline
Ну не знаю - не знаю..
Вот почитай -> [http://msdn.microsoft.com/en-us/library/bb219840(VS.85).aspx]! Это тебе нужно?
P.S.: Не вижу огромных различий между asm и HLSL, кроме сложности и быстрости (зависит от корявости рук). xD


Сообщение отредактировал NewStrannik - Четверг, 01.01.2009, 19:37
 
Maverick Дата: Четверг, 01.01.2009, 15:00 | Сообщение # 5
Хоть палкой гони
Группа: Высший Советник
Сообщений: 781
Статус: Offline
смотри, у меня есть простой код
ps.1.4

phase

mov r0, v0

проще не бывает =)

я считаю что он работает так - берет цвет с тексутры экрана(v0) и записывает этот цвет в текстуру, которая потом нарисуецо поверх экрана (r0)
Тоесть фактически этот код ВООБЩЕ никак не должен быть заметен в игре, правильно?

Просто я запустил - у меня все белое biggrin wtf?

 
WertyXBOCT Дата: Четверг, 01.01.2009, 15:16 | Сообщение # 6
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
Попробуй любой другой шейдер. Возможно ты просто неправильно его используешь. Может где то в коде ошибка. По идее шейдеры всегда чтото отображают на экран... (правда сам в этом сомневаюсь в этом)


Blog:www.WeslomPo.ru
mailto: i@weslompo.ru
 
Maverick Дата: Четверг, 01.01.2009, 19:26 | Сообщение # 7
Хоть палкой гони
Группа: Высший Советник
Сообщений: 781
Статус: Offline
все, с шейдерами более менее стало понятно - написал моушн блюр на U3D - вроде норм.....
 
Ang3L Дата: Четверг, 01.01.2009, 19:29 | Сообщение # 8
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
Если интересны асм коды шейдеров, в справке к DirectX SDK там все коды. И примеры.


Blogpost
 
NewStrannik Дата: Четверг, 01.01.2009, 19:39 | Сообщение # 9
Всех уже задолбал
Группа: Проверенные
Сообщений: 808
Статус: Offline
Ang3L, а я на что ссылку дал? ...
Maverick, можешь показать код размытия, очень интересно:)
 
Maverick Дата: Четверг, 01.01.2009, 20:02 | Сообщение # 10
Хоть палкой гони
Группа: Высший Советник
Сообщений: 781
Статус: Offline
короче Create обьекта, отвечающего за шейдер
SetPSSPSConstant(0,0,0,0,0.4) //0.4 - сила размытия, чем меньше - тем сильнее (0...1)
SetPSSTexture(1,-1)

//тут я загружаю файлы шейдеров, содержания которых приведено ниже
vertex_shader = 'shaders/shader1.vsh'
pixel_shader = 'shaders/shader1.psh'

CreatePostScreenShader()

фаил вертексных шейдеров
vs.1.1

mov oPos, v0
mov oT0, v7
mov oT1, v8

фаил пиксельных шейдеров
ps.1.3

tex t0
tex t1

mul r1, t1, t1
mul r1, r1, r1
mul r1, r1, r1
mul r1, r1, r1
mul r1, r1, r1
mul r1, r1, r1
add r0, t0, r1
mov r0.a, c0.w

почему столько mul? Я хотел немного увеличить контрастность и выделить яркие участки на экране (планировалось чтото типа bloom'а)

 
NewStrannik Дата: Четверг, 01.01.2009, 20:43 | Сообщение # 11
Всех уже задолбал
Группа: Проверенные
Сообщений: 808
Статус: Offline
вау, удобно, практично и мало кода))
хм.. в пиксельном шейдере всё понятно, а вот что делает вертексный?))
 
Maverick Дата: Пятница, 02.01.2009, 13:30 | Сообщение # 12
Хоть палкой гони
Группа: Высший Советник
Сообщений: 781
Статус: Offline
он передает в регистры to и t1 текстуры: первая - это то рендерицо всегда на главный вид, а вторую я задал сам, функцией SetPSSTexture(1,-1) которая означает "задать индексу oT1 текстуру главного вида" Тоесть я её скопироваль грубо говоря. Первая строка выводит главную тексту вида на экран как есть. Короче ничего особого он не делает ) Текстура главного вида сцены всега лежит в регистре v7, а v8 - это для остальных дополнительных текстур, назначаемых юзером.

Добавлено (02.01.2009, 13:30)
---------------------------------------------
*.vcs - это че за формат шейдеров такой? Типа скомпилированные уже? если да, то как их декомпильнуть? )

 
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Advanced Mode) » Решение серьезных вопросов » Шейдеры (знаю что звучит странно)
Страница 1 из 11
Поиск:



Сообщество Gmaker.SU 2005-2012
Используются технологии uCoz
Простой вход