|
Xors3D Графический движок с поддержкой DirectX9 |
03.05.2014, 22:39
|
#121
|
Мастер
Регистрация: 12.01.2009
Сообщений: 980
Написано 389 полезных сообщений (для 632 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Сообщение от Mr_F_
необязательно.
варианта два - компилятор решает какой выбрать:
|
Ещё можно указать явно:
[ branch ] if ( ... ) { ... }
Для if и switch можно указывать branch или flatten, соответственно динамически или нет.
Для for, while можно указать unroll( x ) или loop, первый разворачивает цикл, в необязательном параметре можно указать насколько развернуть, loop - цикл не разворачивается.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Samodelkin за это полезное сообщение:
|
|
10.05.2014, 11:14
|
#122
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Вот такой вопрос .
Делаю спотлайт для деферреда и настигла проблема .
Код спотлайта
cD = cD * cLightColor;
float3 vLight = normalize(vLightPos - vWorldPos.xyz);
float NdotL = max(0.0f, dot(vNormal, vLight));
float cosAngle = max(0.0f, dot(-vSpotLightDir, vLight));
float resi = saturate(1.0f - distance(vWorldPos.xyz, vLightPos) / fLightRadius);
float spotAtten = smoothstep(vLightAngles.x, vLightAngles.z, cosAngle);
cD=cD*(NdotL*spotAtten);
из кода
xSetEffectVector gPostPoly,"vLightAngles",0.1,0,numval(180)
Чем больше vLightAngles.z тем ярче спотлайт
в итоге я получаю еле светлый свет при яркости 255(1в шейдере).
Как исправить я даже не знаю
|
(Offline)
|
|
08.06.2014, 19:48
|
#123
|
ПроЭктировщик
Регистрация: 02.06.2011
Адрес: Набережные Челны
Сообщений: 103
Написано 27 полезных сообщений (для 91 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Ребят, а можно както заиндексировать текстурки?
Пробывал сделать так:
разместил на текстуру 512х512 16 текстурок по 128х128;
Оказалось что такое не прокатывает ибо изза фильтрации по краю тайла выводятся цвета соседнего тайла
|
(Offline)
|
|
08.06.2014, 20:24
|
#124
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
нужно делать спец края вокруг тайлов. т.е. ещё несколько пикселей продолжения тайла в бока, и выборку менять, чтобы брать квадрат без краёв этих. тогда фильтроваться нормально будет.
если тексы одного размера, можно в 3д текстуру положить и выбирать слои её. ну и на дх10+ на это есть текстурные массивы.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.06.2014, 21:35
|
#125
|
ПроЭктировщик
Регистрация: 02.06.2011
Адрес: Набережные Челны
Сообщений: 103
Написано 27 полезных сообщений (для 91 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Хм, оказалось что проблема даже не из за "соседних тайлов", так как я размножил один тот же тайл по всей текстуре, но при прорисовке видна грань с цветом от пикселя 0:0
static float4 Colorka : COLOR;
texture Texture000: TEXTURE;
sampler Sampler1 = sampler_state
{
Texture = <Texture000>;
};
struct PSInput
{
float2 texCoords : TEXCOORD0;
};
float4 PSMain (PSInput input): COLOR {
Colorka=tex2D(Sampler1,input.texCoords%0.25f);
return float4(Colorka);
}
technique MainTechnique
{
pass p
{
AlphaBlendEnable = 1;
PixelShader = compile ps_2_0 PSMain();
}
}
Получается что когда input.texCoords почти кратна 0.25f он высчитывает цвет из координатов 0.0f
|
(Offline)
|
|
08.06.2014, 21:56
|
#126
|
ПроЭктировщик
Регистрация: 02.06.2011
Адрес: Набережные Челны
Сообщений: 103
Написано 27 полезных сообщений (для 91 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Проблема решаема. Оказывается работает так input.texCoords%0.1 или input.texCoords%0.2 0.3 0.4 0.5 и так далее, главное чтобы после запятой была одна цифра. + дополнительные грани от Mr_F_
|
(Offline)
|
|
12.06.2014, 19:49
|
#127
|
ПроЭктировщик
Регистрация: 02.06.2011
Адрес: Набережные Челны
Сообщений: 103
Написано 27 полезных сообщений (для 91 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
если тексы одного размера, можно в 3д текстуру положить и выбирать слои её
|
А можно поподробнее, что такое 3д текстура для начала?
|
(Offline)
|
|
12.06.2014, 20:34
|
#128
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Сообщение от Izunad
А можно поподробнее, что такое 3д текстура для начала?
|
http://gamedev.stackexchange.com/que...re-3d-textures
GOOGLE?
Я не зануда, но это на столь уже базовые знания везде пережованные...
|
(Offline)
|
|
12.06.2014, 20:41
|
#129
|
Мастер
Регистрация: 12.01.2009
Сообщений: 980
Написано 389 полезных сообщений (для 632 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Нужно в школе ввести отдельный предмет "Что такое поисковые системы и зачем они нужны".
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо Samodelkin за это полезное сообщение:
|
|
12.06.2014, 22:22
|
#130
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,023
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Сообщение от Samodelkin
Нужно в школе ввести отдельный предмет "Что такое поисковые системы и зачем они нужны".
|
И психологию занудства. Тоже полезно будет.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.08.2014, 00:09
|
#131
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,023
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Копипаста из урока.
Не работают шейдеры, я запарился, хочу что бы кто-нибудь взглянул:
SH.7z
Каждый раз ошибка:
Если убрать проверку всё равно не работает (не накладывается/не загружается).
|
(Offline)
|
|
10.08.2014, 04:11
|
#132
|
Мастер
Регистрация: 12.01.2009
Сообщений: 980
Написано 389 полезных сообщений (для 632 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Сообщение от Arton
Копипаста из урока.
Не работают шейдеры, я запарился, хочу что бы кто-нибудь взглянул:
Вложение 20783
Каждый раз ошибка:
Вложение 20784
Если убрать проверку всё равно не работает (не накладывается/не загружается).
|
Ну я не собирал, тем более с Хорсом не работал никогда, но взглядом прошелся по коду -- в шейдере у тебя в функции PSMain строка
float lit = dot(input.normal, 8lightDirection);
имя 8lightDirection - опечатка.
Вообще это же неудобно, представь что у тебя код шейдера в несколько тысяч строк, как ты будешь опечатки искать? Если Хорс не предоставляет информацию по компиляции шейдеров, то придумай что-нибудь, например напиши свой код который использует дх напрямую, где есть отчёт о сборки шейдера.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.08.2014, 04:14
|
#133
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
ксорс можно заставить выплёвывать жирный хтмл с логом ошибок, включая все ошибки компила шейдеров.
шейдер ежели не скомпилился, то вернёт ноль, дальше ты этот 0 суёшь в ValidateTechnique и крашишься.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.08.2014, 12:41
|
#134
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Сообщение от Arton
Копипаста из урока.
Не работают шейдеры, я запарился, хочу что бы кто-нибудь взглянул:
Вложение 20783
Каждый раз ошибка:
Вложение 20784
Если убрать проверку всё равно не работает (не накладывается/не загружается).
|
Там было несколько ошибок.
На сайте mok'и поищи tv3d shader editor,
Полезная штуковина.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.08.2014, 18:57
|
#135
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,023
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Xors3D. Шейдеры. Урок первый
Спасибо большое
Сообщение от Samodelkin
float lit = dot(input.normal, 8lightDirection);
имя 8lightDirection - опечатка.
|
Вместо "8" должен было быть "-", почему-то при копирование из pdf все "-" заменились на "8" (не говоря уже о потерянном форматирование). Заменял, но не всё заметил.
У Моки утилиту давно не смог скачать т. к. она на юкозе, старую регистрацию не помню, а новая не прошла, попробую ещё раз.
Про выдачу ошибок шейдера в лог не знал.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:19.
|