Страница 1 из 2

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

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

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

СообщениеДобавлено: 08 фев 2013, 07:36
Guyver
ну как я понимаю SurfaceOutput это вот такая структура:

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


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

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

ShaderLab этож всего лишь препарсер.

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

СообщениеДобавлено: 08 фев 2013, 11:18
seaman
Т.е. так можно?:
Скрытый текст:
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"
}

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

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

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

СообщениеДобавлено: 09 фев 2013, 21:57
nose
Вот пару ссылок, может кого натолкнет на идеи как в унити можно реализовать IBL,
я пока толком не разобрался какое решение правильное и связан ли IBL с Spherical Harmonics
каким либо образом
http://http.developer.nvidia.com/GPUGem ... ter10.html
http://http.developer.nvidia.com/GPUGem ... _ch19.html

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

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

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

СообщениеДобавлено: 09 фев 2013, 22:33
nose
waruiyume писал(а):http://docs.unity3d.com/Documentation/Manual/LightProbes.html


Лайтпробы хоть и дают нужный результат но они не для динамики, поэтому нужно именно IBL с использованием HDR кубемапы

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

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

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

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

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

СообщениеДобавлено: 21 мар 2013, 01:55
nose
Тему можно удалять, нужный шейдер для Image Based Lighting был найден, осталось только перевести его из HLSL, с чем пока что возникают проблемы, но надеюсь их решу.

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

СообщениеДобавлено: 30 мар 2013, 04:26
nose
Пошли самым простым путем, блюр кубемапы и уже использование её как диффусное освещение.
Изображение
Изображение
Изображение
Изображение
Изображение

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

СообщениеДобавлено: 30 мар 2013, 09:10
Diab10
Это машина на фоне фотографии чтоли?

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

СообщениеДобавлено: 30 мар 2013, 13:51
keiichi
Diab10 писал(а):Это машина на фоне фотографии чтоли?

В сфере с панорамной HDRI текстурой.

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

СообщениеДобавлено: 11 апр 2013, 00:03
nose
Привет всем, такой вопрос, можно ли кубемапу повернуть на определенный угол при этом регулируя её поворот флоатом ?

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

СообщениеДобавлено: 11 апр 2013, 01:00
waruiyume
А вектор, в сторону которого делается выборка, не поворачивается :-\
http://docs.unity3d.com/Documentation/S ... atrix.html