forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Xors3D. Шейдеры. Урок первый (http://forum.boolean.name/showthread.php?t=8564)

tirarex 10.08.2014 19:26

Ответ: Xors3D. Шейдеры. Урок первый
 
Вложений: 1
Вот данная программа.

Arton 11.08.2014 01:13

Ответ: Xors3D. Шейдеры. Урок первый
 
Примечательно:

Слева текстура загружена с флагом 4, справа маска через шейдер.



Текстура DDS, сохранена в режиме "DXT5 ARGB 8 bpp | interpolated alpha", + mip-map.

Mr_F_ 11.08.2014 01:16

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Примечательно
у тебя пороговое значение обрезания разное

Arton 11.08.2014 01:24

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Сообщение от Mr_F_ (Сообщение 285219)
у тебя пороговое значение обрезания разное

Плоха понял, но в Хорсе никаких значений по обработке альфа-канала не поменять.

Короче надо юзать шейдеры, сам Хорс делает что-то не так.


Может мне кто-нибудь объяснить почему сохраняю шейдер через блокнот (винды) и он не работает, а через tv3d shader editor работает О_О
WTF&!
(а теперь всё работает... ок будем считать это локальные глюки...)

Mr_F_ 11.08.2014 01:26

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Плоха понял, но в Хорсе никаких значений по обработке альфа-канала не поменять.
xSetAlphaRef была у ксорса функция.
в шейдере просто сам выбираешь с каким значением сравнивать.

Arton 11.08.2014 01:40

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Сообщение от Mr_F_ (Сообщение 285221)
xSetAlphaRef была у ксорса функция.
в шейдере просто сам выбираешь с каким значением сравнивать.

Действительно.
Но она была переименована в xEntityAlphaRef

Samodelkin 11.08.2014 06:02

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Сообщение от Arton (Сообщение 285220)
Может мне кто-нибудь объяснить почему сохраняю шейдер через блокнот (винды) и он не работает, а через tv3d shader editor работает О_О
WTF&!

Возможно блокнот сохранил в UTF8, а компилятор шейдеров только в ANSI воспринимает.

Arton 11.08.2014 15:11

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Сообщение от Samodelkin (Сообщение 285232)
Возможно блокнот сохранил в UTF8, а компилятор шейдеров только в ANSI воспринимает.

Да должен быть ANSI, просто блокнот пошутил надомной, а я поверил. Думал файл в UTF-8 должен быть, хотя помню что Хорс с UTF не дружит.

Arton 12.08.2014 03:27

Ответ: Xors3D. Шейдеры. Урок первый
 
Поискал через яндекс и гугл (прошерстил урок Хорса), нашёл интересный урок по HLSL, но то что было нужно не увидел.

Как сделать что бы текстура с двух сторон накладывалась?

moka 12.08.2014 03:35

Ответ: Xors3D. Шейдеры. Урок первый
 
BackFace'ы?

Mr_F_ 12.08.2014 04:00

Ответ: Xors3D. Шейдеры. Урок первый
 
CullMode = None ставь в технике

Arton 12.08.2014 04:09

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Сообщение от Mr_F_ (Сообщение 285253)
CullMode = None ставь в технике

Спасибо.
Хм, а что насчёт правильного освещения?
Т. к. освещение одинаково для обеих сторон.

Mr_F_ 12.08.2014 05:17

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Хм, а что насчёт правильного освещения?
Т. к. освещение одинаково для обеих сторон.
в шейдере ты можешь определить сторону.
юзай семантику VFACE: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

в зависимости от неё флипаешь нормаль.

Arton 12.08.2014 06:15

Ответ: Xors3D. Шейдеры. Урок первый
 
Цитата:

Сообщение от Mr_F_ (Сообщение 285256)
в шейдере ты можешь определить сторону.
юзай семантику VFACE: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

в зависимости от неё флипаешь нормаль.

Что мне делать я понял, но как не знаю, увы я знаком только с blitz basic :(

У меня тут бред да?
Код:

        int VFACE;
        if (VFACE < -1 )
        {
                        float lit        = dot(-input.normal , -lightDirection);
          }
          else
          {
                        float lit        = dot(input.normal , -lightDirection):
        }


Mr_F_ 12.08.2014 11:42

Ответ: Xors3D. Шейдеры. Урок первый
 
да, потому что ты объявляешь пустую неопределённую переменную и сравниваешь ещё с чем-то.
VFACE над вставить в входящие данные PS.
там где у тебя всякие TexCoords : TEXCOORD0, туда же вставляешь что-нибудь типа whatFace : VFACE.


Часовой пояс GMT +4, время: 09:24.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot