Привет всем!
Постепенно работаю над поддержкой directX согласно мануалам unity.
Может у меня руки кривые, может еще что не так, но заметил странность:
GammaColor Space-картинка смотрится одинаково на компах с OpenGL и DirectX.
Есть, правда, странная проблема: воокруг игрока рисуется полупрозрачный куб (куб не крутится при вращении камеры). Непонятно что это за куб, думал это скайбокс... Отключил скайбоксы, вообще все отключил, взял камеру с дефолтными настройками и все равно виден очень слабо заметный куб воокруг игрока.
Может у кого есть предположение что это за мэджик куб.
LinearColor Space-картинка смотрится по-разному на компах с OpenGL и DirectX. На компе с OpenGL картинка свелтее. И значительно так светлее... Нет, яркость экрана одинаковая, монитор тоже, компы работают на виртуалках, проверял каждый компонент RGB цвета на глаз и пипеткой - смотрятся одинаково, QualitySettings на обоих билдах один и тот же. А вот картинка игры разная. Особенно сильно бьет по глазам UI, он до того разный, что и слепой заметит серый текст вместо черного.
В чем может быть причина? Как это возможно исправить?
OpenGL:

DirectX:

Alerr
Скрины чтоль дай
MrShoor
> Alerr
> Скрины чтоль дай
Сделал скрины черно-белого шахматного помещения.
OpenGL-картинка темнее в LinearColorSpace.
Alerr
Хмм.. либо проблема в освещении, либо mip уровни генерятся без учета sRGB в OpenGL
Похоже освещение чуть разное...
MrShoor
> Похоже освещение чуть разное...
Значения у directionalLight одно и то же. Удалял лигхтмапы на всякий случай, на скинах их нет.
В GammaColorSpace картинка одинаковая, во всяком случае на глаз разницы не видно.
Может у кого-то есть еще идеи...
Какая версия Unity? Какой шейдер? Используется ли пост-обработка? Если вместо текстуры использовать серый цвет (0.5, 0.5, 0.5), яркость тоже будет отличаться?
Стоит ли в настройках текстуры галочка sRGB (Color Texture)?
ENAleksey
> Какая версия Unity?
Пробовал на 2018.1.2f1 и 2018.1.6f1.
> Какой шейдер?
Шейдер постобработки относительно сложный. Для эксперимента я вообще взял просто камеру без всего и получил такой результат.
> Если вместо текстуры использовать серый цвет (0.5, 0.5, 0.5), яркость тоже будет отличаться?
Попробую, но думаю результат будет отличаться.
> Стоит ли в настройках текстуры галочка sRGB (Color Texture)?
Постобработка в OnRenderImage оперирует RenderTexture-ами, я не смотрел, посмотрю возможность установки sRGB = true. Но при чем тут это, когда просто камера без всего дает другой результат.
Alerr
> Шейдер постобработки относительно сложный
Я про шейдер освещения.
Alerr
> Постобработка в OnRenderImage оперирует RenderTexture-ами
Я про чёрно-белую текстуру шахматной доски.
ENAleksey
> Я про шейдер освещения.
Я не особо силен в освещении, оно вроде считается в самом surfaceShader, а он стандартный.
> Alerr
>> Постобработка в OnRenderImage оперирует RenderTexture-ами
> Я про чёрно-белую текстуру шахматной доски.
Да, стоит sRGB-галка.
Вывел просто серый цвет (0.5,0.5,0.5,1):

Слева OpenGL, справа DirectX.
Alerr
Попробуй отключить sRGB и проведи гамма коррекцию сам https://habr.com/post/353632/
IBets
> Попробуй отключить sRGB и проведи гамма коррекцию сам https://habr.com/post/353632/
Провел коррекцию в пост-эффекте на компе с OpenGL. На компе с OpenGL, серый цвет стал (186,186,186), а на directX(коррекцию не прводил) (188,188,188).
Днем еще продолжу возиться. А какой прок от этой коррекции? Цвета-то можно подогнать, но разве за это не должна отвечать Unity и OpenGL/DirectX?
Alerr
Ну вот когда ты устанавливаешь sRGB она должна проводиться автоматически. Но где то косяк, не исключенно что в Unity. Обрати внимание все текстуры должны быть так же в sRGB
IBets
> Обрати внимание все текстуры должны быть так же в sRGB
Даже всякие маски?
Alerr
Diffuse текстуры обычно только
Может это мэджик куб высветляет картинку?
Тема в архиве.