Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Артефакт (2 стр)

Артефакт (2 стр)

Страницы: 1 2 3 Следующая »
innuendoПостоялецwww13 июня 201822:36#15
IBets
> R16G16 пробовал

я же написал rgb16f

IBetsПользовательwww14 июня 20180:21#16
innuendo
Да я накосячил ты видел в формуле квадратный корень извелекается, поэтому нужно привести компонетны от [-1, 1] -> [0, 1]
IBetsПользовательwww14 июня 20180:36#17
innuendo
У меня новая проблема
+ Показать

Обрати внимание на стены они разного цвета. Должны быть одного.  Буффер нормалей могу скинуть и позиций. Они норм

Правка: 14 июня 2018 0:37

SuslikМодераторwww14 июня 20184:28#18
IBets
попробуй побольше эффектов помимо АО сверху наложить, тогда будет ещё труднее понять, что происходит. главное — просто цветом нормали не выводи, это слишком просто.
IBetsПользовательwww14 июня 20184:29#19
Suslik
Смотри я выложил новый пост. Про SSAO

Правка: 14 июня 2018 5:29

IBetsПользовательwww22 июня 201813:37#20
MrShoor
Ты для нормалей стреографическую проекцию замутил? А под знак где то один бит выделил или как?
MrShoorУчастникwww22 июня 201818:55#21
IBets
> Ты для нормалей стреографическую проекцию замутил?
Шта?

> А под знак где то один бит выделил или как?
Я ленивая жопа, я не стал рыскать в поисках лучшей упаковки, а для прототипа сделал самый тупой влобный вариант:

float4 PackNormal(float3 UnpackedNormal) {
    float4 Out;
    Out.xyz = UnpackedNormal*0.5 + 0.5;
    Out.w = 0;
    return Out;
}

float3 UnpackNormal(float4 PackedNormal) {
    float3 Out = (PackedNormal.xyz-0.5)*2.0;
    return Out;
}

IBetsПользовательwww22 июня 201822:43#22
MrShoor
Ахаха
MrShoorУчастникwww22 июня 201822:47#23
IBets
> Ахаха
На этапе отладки алгоритмов именно влобная упаковка рулит, потому что всегда можно посмотреть в текстуру и понять куда примерно тут смотрит нормаль. Поэтому как бы такая упаковка маст хев. А все остальное (нормальная упаковка тобишь) прикручивается потом.

Правка: 22 июня 2018 22:47

g-contПостоялецwww23 июня 20181:37#24
Стереографическая проекция калечит нормали, ну во всяком случае, если знак не сохранять. Из всех методов мне больше всего понравилась параболическая проекция, к тому же декодирование совпадает с ортографической, но корень не нужен. Да и всё равно их потом нормализуют.
IBetsПользовательwww23 июня 20181:38#25
g-cont
Ну под знак один бит где нибудь выделить
AsaqПользовательwww23 июня 20188:59#26
Сравнение алгоритмов упаковки нормалей на производительность и качество - ссылка
IBetsПользовательwww23 июня 20189:00#27
Asaq
Ну этот мэйнстрим все знают
IBetsПользовательwww23 июня 20189:24#28
Asaq
Вот как в Crysis 3 походу устроет G-Buffer
void EncodeMicroGBuffer(MaterialAttribsCommon attribs, inout half4 bufferA, int2 WPos)
{
  float3 normalView = mul((float3x3)CV_ViewMatr, attribs.NormalWorld);
  float2 normalEnc  = normalView.xy * rsqrt(8 * normalView.z + 8) + 0.5;
  
  bool bChecker0 = (WPos.x & 1) == (WPos.y & 1);
  float3 baseColorYCC = EncodeColorYCC(attribs.Albedo);
  bufferA.xy = bChecker0 ? baseColorYCC.xy : baseColorYCC.xz;
  bufferA.z = bChecker0 ? attribs.Smoothness : normalEnc.x;
  bufferA.w = bChecker0 ? GetLuminance(attribs.Reflectance) : normalEnc.y;
}

Правка: 23 июня 2018 9:24

AsaqПользовательwww23 июня 201813:43#29
IBets Метод кодирования нормали у вас одинаковый. А смысл bChecker0 не понял.
Страницы: 1 2 3 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр