Что-то вроде нового слоя

Для экспериментальных разработок и тем "я нашел чужой исходник, почему он не работает?"

Что-то вроде нового слоя

Сообщение nose 08 фев 2013, 01:43

Всем привет, у каждого шейдера есть такие вещи как
o.Albedo o.Emission o.Alpha и тд, но мне их не хватает, можно ли сделать что-то вроде
o.custom, суть в том что мне нужно взять текстуру кубемэпы и передать её в освещение, делать через эмиссию и указывать в финальном результате просчета освещения s.Emission не подходит.
nose
UNец
 
Сообщения: 15
Зарегистрирован: 08 апр 2012, 19:58

Re: Что-то вроде нового слоя

Сообщение Guyver 08 фев 2013, 07:36

ну как я понимаю SurfaceOutput это вот такая структура:

Синтаксис:
Используется csharp
struct SurfaceOutput {
        fixed3 Albedo;
        fixed3 Normal;
        fixed3 Emission;
        half Specular;
        fixed Gloss;
        fixed Alpha;
};
 


описанная в файле ....\Unity\Editor\Data\CGIncludes\Lighting.cginc, который инклюдится автоматом по дефолту.

если у вас кастом модель освещения, то наверно можно обьявить свою структуру... и передавать куда вам там надо.

ShaderLab этож всего лишь препарсер.
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск

Re: Что-то вроде нового слоя

Сообщение seaman 08 фев 2013, 11:18

Т.е. так можно?:
Скрытый текст:
Shader "Example/MyShade" {
Properties {
_CubeTex ("Texture", CUBE) = "white" {}
....
}
SubShader {
Tags { "RenderType" = "Opaque" }

CGPROGRAM
#pragma surface surf CubeShade

....

struct SurfaceOutputMy {
fixed3 Albedo;
fixed3 Normal;
fixed3 Emission;

fixed3 Cubemap;

half Specular;
fixed Gloss;
fixed Alpha;
};

half4 LightingCubeShade (SurfaceOutputMy s, half3 lightDir, half atten) {
//Рассчитываем освещение
}

struct Input {
float2 uv_MainTex;
};
sampler2D _MainTex;
void surf (Input IN, inout SurfaceOutputMy o) {
o.Cubemap= tex2D (_CubeTex, IN.uv_MainTex).rgb;
}
ENDCG
}
Fallback "Diffuse"
}
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Что-то вроде нового слоя

Сообщение nose 08 фев 2013, 16:30

Спасибо за ответы, ищё есть такой вопрос посложней, хочу реализовать IBL (Image Based Lighting) но так и не разобрался толком в его реализации, много где натыкался на Spherical Harmonics,
но разве SH это не другой уже тип освещения, если кто знает может ли описать подробно что из себя представляет IBL и связан ли он как с SH?
nose
UNец
 
Сообщения: 15
Зарегистрирован: 08 апр 2012, 19:58

Re: Что-то вроде нового слоя

Сообщение nose 09 фев 2013, 21:57

Вот пару ссылок, может кого натолкнет на идеи как в унити можно реализовать IBL,
я пока толком не разобрался какое решение правильное и связан ли IBL с Spherical Harmonics
каким либо образом
http://http.developer.nvidia.com/GPUGem ... ter10.html
http://http.developer.nvidia.com/GPUGem ... _ch19.html
nose
UNец
 
Сообщения: 15
Зарегистрирован: 08 апр 2012, 19:58

Re: Что-то вроде нового слоя

Сообщение waruiyume 09 фев 2013, 22:26

Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Что-то вроде нового слоя

Сообщение nose 09 фев 2013, 22:33

waruiyume писал(а):http://docs.unity3d.com/Documentation/Manual/LightProbes.html


Лайтпробы хоть и дают нужный результат но они не для динамики, поэтому нужно именно IBL с использованием HDR кубемапы
nose
UNец
 
Сообщения: 15
Зарегистрирован: 08 апр 2012, 19:58

Re: Что-то вроде нового слоя

Сообщение nose 14 фев 2013, 15:24

Снова всем привет, после долгих поисков и чтения многих пейперов, у меня есть нужное SH в унити, но появилась проблема в том что это PRT техника, то есть все значения SH света уже забиты в шейдере,
Как бы я не старался я никак не могу найти пейпер где описывается техника где эти коэффициенты будут браться из нашей рендереной HDR кубемапы, может у кого либо есть ссылка на пейпер или название
той нужной техники? знаю есть вариант использовать уже изначально размытую кубемапу но это будет выглядеть отвратительно и не правильно, нужно именно преобразование кубемапы в SH, насколько знаю эта техника используется в Forza 4, Gran Turismo 5, Need For SPeed MW 2012, но вот никак не найду какую либо информацию по ней
nose
UNец
 
Сообщения: 15
Зарегистрирован: 08 апр 2012, 19:58

Re: Что-то вроде нового слоя

Сообщение nose 21 фев 2013, 00:24

Все что хоть как то описывает получение коэфицентов из кубемапы и переводит её в иррадиенс карту, это
http://www.ppsloan.org/publications/StupidSH36.pdf и http://http.developer.nvidia.com/GPUGem ... ter10.html
так же исходники к тутору от нвидии ftp://download.nvidia.com/developer/GPU ... ent/10.zip
но реализовать пока что это я не в силах, много просто вобще не понимаю.
nose
UNец
 
Сообщения: 15
Зарегистрирован: 08 апр 2012, 19:58

Re: Что-то вроде нового слоя

Сообщение nose 21 мар 2013, 01:55

Тему можно удалять, нужный шейдер для Image Based Lighting был найден, осталось только перевести его из HLSL, с чем пока что возникают проблемы, но надеюсь их решу.
nose
UNец
 
Сообщения: 15
Зарегистрирован: 08 апр 2012, 19:58

Re: Что-то вроде нового слоя

Сообщение nose 30 мар 2013, 04:26

Пошли самым простым путем, блюр кубемапы и уже использование её как диффусное освещение.
Изображение
Изображение
Изображение
Изображение
Изображение
nose
UNец
 
Сообщения: 15
Зарегистрирован: 08 апр 2012, 19:58

Re: Что-то вроде нового слоя

Сообщение Diab10 30 мар 2013, 09:10

Это машина на фоне фотографии чтоли?
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Что-то вроде нового слоя

Сообщение keiichi 30 мар 2013, 13:51

Diab10 писал(а):Это машина на фоне фотографии чтоли?

В сфере с панорамной HDRI текстурой.
Аватара пользователя
keiichi
UNец
 
Сообщения: 18
Зарегистрирован: 25 фев 2011, 18:04
  • ICQ

Re: Что-то вроде нового слоя

Сообщение nose 11 апр 2013, 00:03

Привет всем, такой вопрос, можно ли кубемапу повернуть на определенный угол при этом регулируя её поворот флоатом ?
nose
UNец
 
Сообщения: 15
Зарегистрирован: 08 апр 2012, 19:58

Re: Что-то вроде нового слоя

Сообщение waruiyume 11 апр 2013, 01:00

А вектор, в сторону которого делается выборка, не поворачивается :-\
http://docs.unity3d.com/Documentation/S ... atrix.html
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

След.

Вернуться в Шейдерная кузня

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2