|
PBR Shaders
ПБР - шейдеры это относительно новое веяние 3д технологий, позволяющее создавать "физически реалистичные прототипы" материалов.

*+карта бампа, особенно в нашем случае.
Вот эту вот новомодность завезли в Морровинд посредством МГЕ и МСП году в 2015ом.
Что позволило выжать из игры совершенно новую картинку, с блеском, полноценным бампом и другими эффектами.
Которые, в свою очередь, наложились на, уже имеющиеся, эффекты блеска и фейкового бампа.
Так что, по видимости, МВ утоптал многие другие игры одновременно используя сразу два типа эффектов на моделях.
Вдаваться в особые подробности о ПБРах не станем, для этого есть сеть и специализированные сайты.
Но отметим, что было накоплено за прошедший год.
На данный момент, 12 2016 - ПБР шейдеры в МВ находятся в самой ранней стадии становления.
Фактически - на экспериментальном уровне. А завезли из в начале 2015го...
(прим. ред. - до 2019го не было без изменений. В 2019ом Хрчмд продолжил работы, но увы, далеко не продвинулся.)
(прим. ред. - на начало 2020, тишина продолжается. )
(прим. ред. - 2022 год, все глухо. Т.е. направление не получает развития, хотя МГЕ и МВСЕ активно развиваются)
Т.е. МГЕ может их включать, но просад ФПС при этом происходит зверский.
Делающий СОВЕРШЕННО невозможным нормальную игру в этом режиме.
Особенно сильное падение происходит от нескольких источников света.
Когда объект освещен чем-то одним, фпс приемлемый, но сцена с двумя и более светильниками убивает фпс полностью.
Также, для включения этого режима потребуется МГЕ ХЕ version 0.10.0b16 с дополнительно настроенными режимами переключения освещения. Т.е. надо зайти в конфигуратор, выбрать раздел настроек клавиатуры и повесить на какую-нибудь клавишу "переключение режимов". После этого, зайдя в игру можно будет менять оные. На данный момент добавлено два новых режима линейного освещения и да, режим ПБР. При выборе которого игра сильно задумается, а потом, вы сможете увидеть нечто совсем новое.
См. внизу страницы.
А самое занятное!
ПБР шейдеры не требуют знаний кодинга шейдеров, как таковых, достаточно создать правильный набор текстур и объяснить игре, как это обрабатывать.
- Для первого потребуется 2д редактор ака Гимп, Фотошоп, ПайнтНет.
- Для второго, любой текстовый редактор.
Вкратце, требуется создания нескольких новых текстур с целевой и создания текстового файла с указанием параметров.
1. альбедо (более светла копия целевой текстуры)
2. Глосс карта (ака ParametersTexture)
3. RoughnessSource ака карта потертостей и доп. детализации.
4. Бамп, полноценная карта нормалей.
5. и возможно SpecOcclusionSource текстура.
За подробностями см. в этих статьях.
https://www.marmoset.co/posts/physically-based-rendering-and-you-can-too/
http://www.marmoset.co/toolbag/learn/pbr-theory
Что такое ПБР шейдер и как его готовят.
http://artisaverb.info/PBT.html
Полученные текстуры сохраняются в каталог Morrowind\Data Files\materials\ВашаПапка.
Т.е. рекомендуется создать папку для своих текстур.
Где для удобства можно создать еще 5 подкаталогов, для каждого типа текстур, куда сохранять новые текстуры без переименования.
Получив текстуры, остается прописать их в текстовом файле и указать значения блеска.
Настройки эффектов хранятся в файле с именем текстуры в папке materials.
Т.е. для начала надо создать копию файла _automaterial.txt и переименовать ее в; имявашейтекстуры.тхт
(для tx_bottle_02.dds -> будет tx_bottle_02.txt и т.д.)
Файл имеет достаточное кол-во комментариев, облегчающих его понимание.
Поскольку технология работает в экспериментальном режиме, возможно, что-то будет меняться в будущем.
Т.е. автор поменяет некоторые спецификации.
Поэтому не вдаемся в подробности.
Так, или иначе, но ПБР шейдеры способные полностью преобразить игру теперь с Нами!
Остается выразить ОГРОМНУЮ НАДЕЖДУ на их успешное внедрение и оптимизацию!
Примечание.
ПБР - потихоньку завозят и в ОпМВ, здесь производительнось несколько лучше
Всего 8 параметров.
При этом, 3-4 можно сокращать, т.к. они используются только для текстур с высоким показателем блеска.
MaterialVersion
|
2
|
всегда должно быть! видимо нужно для правильной работы шейдеров.
|
NormalsTexture
|
normals.dds
|
указывается путь к карте нормалей. всегда должно быть!
|
AlbedoReplaceTexture
|
albedo.dds
|
путь к текстуре Албедо. Не обязательно.
Автор пишет, мол, это для слишком темных текстур требуется, если оные плохо читаемы.
Эта текстура является ЗАМЕНОЙ оригинальной текстуре, т.е. полностью перекрывает оную.
Может не быть.
|
ParametersTexture
|
parameters.dds
|
текстура доп-параметров. Можно указать путь к Глосс карте.
Может не быть.
|
RoughnessSource
|
parameters_map
|
Ссылается на карту параметров, либо на иное значение из возможных.
Может не быть.
|
FresnelSource
|
parameters_map
|
Отражения по Фреснелю. Управляет уровнем блескучести объекта по карте или по значению.
Может не быть.
|
SpecOcclusionSource
|
parameters_map
|
Еще один параметр расширенной обработки света. Ссылается на карту, либо на иное значение из возможных.
Может не быть.
|
Roughness
|
0.0, 1.0
|
Важный параметр локализации и ровности блеска объекта.
всегда должно быть!
|
FresnelReflectance
|
0.02 - 0.08 (0.20-1.0)
|
Коэфициент преломления по Френселю.
Т.е. также управляет блеском объекта.
всегда должно быть!
|
|
|
Примечание.
Данные могут быть не совсем точны, в связи с относительной сыростью технологии и отсутствия достаточного кол-ва накопленных данных.
|
; Example material data
; Place a text file matching the relative texture path in Data Files/materials/
; e.g. Data Files/Textures/author/tx_example.dds -> Data Files/materials/author/tx_example.txt
; Material version [required]
MaterialVersion=2
; Normals texture path [required]
; Uses all three channels, positive green faces up
; Optional alpha contains roughness or specular occlusion
NormalsTexture=materials/author/tx_example_normals.dds
; Albedo replacement texture path [optional]
; Replaces original texture, useful if original has too much baked in lighting
AlbedoReplaceTexture=materials/author/tx_example_albedo.dds
; Optical parameters texture path [optional]
; red channel = metallicity, this is a binary property where 255 = non-metal, 0 = metal
; green channel = roughness, range 0-1, linear encoded; note that values <0.05 do not render well,
; blue channel = fresnel reflectance at normal incidence, only applies to non-metals, blue 255 maps to reflectance 0.20
; alpha channel = specular occlusion map/cavity map
ParametersTexture=materials/author/tx_example_parameters.dds
; Roughness source enum: constant (default), normals_alpha, parameters_map
; from Roughness constant, normal map alpha, or parameters map (green channel)
RoughnessSource=parameters_map
; Fresnel source enum: constant (default), metallic, parameters_map
; from FresnelReflectance constant, from albedo rgb, or parameters map (red+blue channels)
; metallic automatically removes diffuse contribution from albedo
FresnelSource=constant
; Specular occlusion source enum: none, normals_alpha, parameters_map, albedo_luma (default)
; none, normal map alpha or parameters map (alpha channel), or albedo luma
SpecOcclusionSource=parameters_map
; Roughness constant, range 0-1 (default 1.0), note that values <0.05 do not render well
; Controls how matte or smooth the material is, and the strength and focus of reflections
; 0.0 = mirror smooth, 1.0 = maximum roughness
Roughness=0.5
; Fresnel reflectance constant at normal incidence, default 0.04
; Can be sensitive to changes, most materials are 0.02 - 0.08
FresnelReflectance=0.04
|
Автор заботливо прокомментировал значения и возможные параметры оных.
|
MaterialVersion=2
NormalsTexture=materials\@tx\Nm\@_cr_scmp.dds
AlbedoReplaceTexture=materials\@tx\Abc\@_cr_scmp.dds
ParametersTexture=materials\@tx\prm\@_cr_scmp.dds
RoughnessSource=materials\@tx\rgh\@_cr_scmp.dds
FresnelSource=parameters_map
SpecOcclusionSource=materials\@tx\Gsn\@_cr_scmp.dds
Roughness=0.5
FresnelReflectance=0.4
|
|
|
|
![]() |
![]() |
Это пример шейдера для текстур Скампа из Симфонии.
|
Вот такой вот серебряный посох, с бампом и бликами, на фоне пиксельной мазни ванильной текстуры.
|
MaterialVersion=2
NormalsTexture=materials\tx_keening_normals.dds
AlbedoReplaceTexture=materials\tx_keening_albedo.dds
ParametersTexture=materials\tx_keening_parameters.dds
RoughnessSource=parameters_map
FresnelSource=parameters_map
SpecOcclusionSource=parameters_map
Roughness=0,750
FresnelReflectance=0,040
|
|
А это шейдер одного из орудий Кагренака из плагина тов. Flash3113 с http://www.nexusmods.com/morrowind/mods/44500/
Можно посмотреть другие работы этого автора.
http://www.nexusmods.com/morrowind/images/2965/
http://www.nexusmods.com/morrowind/Images/2895/
|
|
![]() Бочка с ПБРом.
|
![]() Грязекраб с ПБР шейдером, от того же автора.
... что-то сразу Курицей повеяло(С)
|
|
|
Несколько примеров.
|
|
![]() |
![]() Сталь, до и после включения ПБР.
|
![]() |
![]() |
Вот такая вот земелька с ПБР шейдером!
|
|