Doc/ChevelureRenderPass/ru

From ChevelureWiki

(Difference between revisions)
Jump to: navigation, search
(Undo revision 448 by Ugelihelugu (Talk))
 
(37 intermediate revisions not shown)
Line 1: Line 1:
-
=== ChevelureRenderPass ===
+
[[Documentation/ru|Документация]]
 +
 
 +
== ChevelureRenderPass ==
 +
 
 +
[[File:Doc_renderpass_menu.jpg||thumb|Create Render Pass]]
Дополнительная нода для задания параметров проходов. ChevelureRenderPass подключается к шейпу волос. К одному шейпу может быть привязано несколько проходов (ChevelureRenderPass). В проходе задаются фильтры - для указания в каких проходах рендера будет участвовать.
Дополнительная нода для задания параметров проходов. ChevelureRenderPass подключается к шейпу волос. К одному шейпу может быть привязано несколько проходов (ChevelureRenderPass). В проходе задаются фильтры - для указания в каких проходах рендера будет участвовать.
-
Таким образом можно например для прохода final и shadow использовать разную ширину волос, включать прореживание и т.д.
+
Таким образом можно, например, для прохода final и shadow использовать разную ширину волос, включать прореживание и т.д.
-
Если у шейпа волос нет ни одного пасса настройки рендера берутся из панели [[Doc/ChevelureShape/Render/ru|Render]]
+
Если у шейпа волос нет ни одного пасса, настройки рендера берутся из панели [[Doc/ChevelureShape/Render/ru|Render]]
-
----
+
== Как работает ==
-
'''Как работает'''
+
 
-
В рендермане в момент рендеринга доступны 2 атрибута: pass_class и pass_id.
+
В рендермане в момент рендеринга доступны 2 атрибута: '''pass_class''' и '''pass_id'''.
-
pass_class может быть стандартный (final, shadow, ...).
+
'''pass_class''' может быть стандартный (final, shadow, ...).
-
pass_id похоже на имя камеры, хотя и не всегда.
+
'''pass_id''' похоже на имя камеры, хотя и не всегда.
Все вопросы к документации на рендерман.
Все вопросы к документации на рендерман.
-
----
+
== Создание ==
-
'''Создание'''
+
Выделить шейп волос. Далее в меню '''Chevelure/Add Render Pass'''.
-
''Надо дописать''
+
-
Примечание: при создании создается коннекты настроек рендеда от шейпа волос к проходу. Это сделано для наследования параметров по умолчанию. Если требуется изменить их - необходимо отрубить коннект.
+
Примечание: при создании устанавливаются коннекты атрибутов рендера от шейпа волос к проходу. Это сделано для наследования параметров по умолчанию. Если требуется изменить их, необходимо отрубить коннект.
-
----
+
== Настройка фильтров ==
-
'''Настройка фильтров'''
+
-
Есть 8 станлартных классов проходов: "final", "shadow", "reflection", "environment", "depth", "reference", "archive", "photon".  
+
[[File:Doc_pruning_tab.jpg||thumb|ChevelureRenderPass]]
 +
 
 +
Есть 8 стандартных классов проходов: "final", "shadow", "reflection", "environment", "depth", "reference", "archive", "photon".  
Также в атрибуте '''pass Classes''' можно перечислить пользовательские проходы. Разделитель пробел.
Также в атрибуте '''pass Classes''' можно перечислить пользовательские проходы. Разделитель пробел.
-
Атрибут '''PassIds''' необходим если нужно указать конкретную камеру для которой будет работать ChevelureRenderPass.
+
Атрибут '''PassIds''' необходим если нужно указать конкретную камеру для которой будет работать '''ChevelureRenderPass'''.
 +
Настройки фильтров собраны в секции '''Pass'''
 +
 +
Для проверки необходимо включить '''dump information''' в шейпе волос см. [[Doc/ChevelureShape/Render/ru|Render]]. После этого
 +
при рендере будет выдаваться информация о '''pass_class''', '''pass_id''' и прошедших фильтрацию проходах.
 +
 +
Например:
 +
pass_class=final pass_id=untitled
 +
bInstanced=0
 +
defaultPass is valid
 +
Или:
 +
pass_class=final pass_id=untitled
 +
bInstanced=0
 +
chevelureRenderPassNode1 is valid
 +
chevelureRenderPassNode2 is valid
 +
 +
 +
Примечание:
  ''Можно ли не указывать pass_id?''
  ''Можно ли не указывать pass_id?''
  Да, если не указано pass_id фильтрация по нему не производится.
  Да, если не указано pass_id фильтрация по нему не производится.
-
  ''Прости еще вопрос а tolower ты делаешь?''
+
  ''Прости, еще вопрос, а tolower ты делаешь?''
  Сравнение производится без учета регистра
  Сравнение производится без учета регистра
 +
 +
 +
== Настройка рендера ==
 +
Для прохода можно включить свой '''тип рендера''' и '''прореживание'''. Прореживание тесно связано с прунингом. Так что стоит изучить.
 +
Также к настройкам рендера относится '''рендер ширина''', '''число сегментов''', '''интерполяция''', '''настройка нормалей''', '''прозрачность''' и т.д.
 +
 +
=== Тип рендера ===
 +
# Кривыми (HAIR)
 +
# Полигональными трубками (TUBES)
 +
# Сабдивными трубками (SUBDIVTUBES)
 +
# Инстансами (INSTANCES)
 +
Примечание: инстансами - только в случае если они заданы в основном шейпе волос.
 +
 +
Включение '''Render Clumps''' заставляет рендерить только центры клампов.
 +
Это иногда дает хорошие результаты в проходе теней. Необходимо еще включить '''Use Clump Radius As Width''' и настроить '''Width Bias'''.
 +
 +
=== Прореживание ===
 +
Используется для оптимизации рендеринга.
 +
 +
Прореживание ('''Degradation''') задается в процентах. 100% значит будут рендерится все волосы, 50% - половина и так далее.
 +
 +
{|
 +
|[[File:Doc_degradation_100.jpg‎|300px|thumb|degradation=100% ]]
 +
|[[File:Doc_degradation_66.jpg‎|300px|thumb|degradation=66% ]]
 +
|[[File:Doc_degradation_33.jpg‎|300px|thumb|degradation=33% ]]
 +
|[[File:Doc_degradation_1.jpg‎|300px|thumb|degradation=1% ]]
 +
|}
 +
 +
Ширина прореживания ('''Degradation Widht'''): процент волос которые изменяют свою ширину до нуля. Эта величина используется для прунинга. Чтобы волосы скачком не исчезали из кадра, а плавно изменяли ширину до 0.
 +
 +
{|
 +
|[[File:Doc_degradation_56_width_50.jpg|200px|thumb|degradation=56% width=50%]]
 +
|[[File:Doc_degradation_45_width_50.jpg|200px|thumb|degradation=45% width=50%]]
 +
|[[File:Doc_degradation_34_width_50.jpg|200px|thumb|degradation=34% width=50%]]
 +
|[[File:Doc_degradation_23_width_50.jpg|200px|thumb|degradation=23% width=50%]]
 +
|[[File:Doc_degradation_12_width_50.jpg|200px|thumb|degradation=12% width=50%]]
 +
|[[File:Doc_degradation_1_width_50.jpg|200px|thumb|degradation=1% width=50%]]
 +
|}
 +
 +
=== Рендер ширина ===
 +
'''Render Width''' ''тут понятно''.
 +
 +
'''Mul Width by Lenght''' умножать ширину волоса на коэффициент длины. Используется когда волосами рисуются мелкие предметы, например камни. В этом случае они не будут изменять геометрических пропорций. Примечание: для правильного текстурировании таких предметов нужно отключать опцию '''dice hair'''.
 +
 +
'''Width bias''' добавка к ширине каждого волоса. Используется для тонких настроек.
 +
 +
=== Число сегментов и интреполяция ===
 +
Для разных проходов может быть задана меньшая или большая тесселяция волоса. В зависимотри от требуемой картинки. Чем выше тесселяция тем медленней рендер и тем больше ресурсов он кушает.
 +
 +
Интерполяция ''тут понятно''
 +
 +
== Другие настройки ==
 +
Прозрачность ''надо вспоминать''
 +
 +
'''dice hair'''
 +
 +
'''sigma hiding'''
 +
 +
Направление нормалей
 +
 +
'''double side'''
 +
 +
'''reverse orientation'''
 +
 +
'''Motion blur'''
 +
 +
== Уровни детализации ==
 +
Использование механизма RiDetails.
 +
''надо вспоминать''
 +
 +
== Прунинг ==
 +
Механизм адаптивного расчета прореживания в зависимости от удаления волос от камеры. Самый мощный аппарат для оптимизации рендеринга больших сцен.
 +
 +
  Статья "Stochastic Pruning"
 +
  Robert L. Cook John Halstead
 +
  Pixar Animation Studios
 +
  [[File:Doc_Pruning.pdf]]
 +
 +
Считает степень прореживания и фактор увеличения ширины исходя из расстояния до камеры.
 +
Т.е. при удалении камеры от объекта будет рендерится меньше волос, но они будут шире. Дабы не терять ощущение плотности.
 +
 +
Прунинг настраивается через параметры '''Rate''', '''Scale''' и '''Prume min'''.
 +
 +
Прунинг не будет работать если расстояние до камеры меньше '''Scale'''.
 +
 +
Формула такая:
 +
prune = pow( '''distance'''/'''Scale''', -log '''Rate'''(2))
 +
'''distance''' - дистанция до камеры
 +
 +
* если получилось prune = 0.5 то будет рендерится 50% волос шириной в 2 раза больше.
 +
* если получилось prune = 0.25 то будет рендерится 25% волос шириной в 4 раза больше.
 +
* и т.д.
 +
 +
Расчитаное значение прунинга для конкретной камеры можно посмотреть в логе рендеринга при включенной '''dump information'''
 +
[[File:Doc_pruning_dump.jpg]]
 +
 +
  Пример: '''Rate'''=2, '''Scale'''=10
 +
  * дистанция <= 10 - рендерится полное число волос
 +
  * дистанция = 20 - рендерится 50%
 +
  * дистанция = 40 - рендерится 25%
 +
  * дистанция = 80 - рендерится 12.5%
 +
 +
Для визуального представления зафиксируем дистанцию до камеры (в данном случае 10) и будем изменять параметр '''Scale'''.
 +
[[File:Doc_pruning_test_scene.jpg|800px]]
 +
 +
Скачать тестовую сцену: [[File:Doc_Pruning.mb]]
 +
 +
----
 +
Для '''Rate''' = 2
 +
{|
 +
|[[File:pruning_rate2_scale10.jpg|200px|thumb|scale=10 rate=2]]
 +
|[[File:pruning_rate2_scale6.jpg|200px|thumb|scale=6 rate=2]]
 +
|[[File:pruning_rate2_scale4.jpg|200px|thumb|scale=4 rate=2]]
 +
|[[File:pruning_rate2_scale3.jpg|200px|thumb|scale=3 rate=2]]
 +
|[[File:pruning_rate2_scale2.jpg|200px|thumb|scale=2 rate=2]]
 +
|[[File:pruning_rate2_scale1.4.jpg|200px|thumb|scale=1.4 rate=2]]
 +
|[[File:pruning_rate2_scale1.jpg|200px|thumb|scale=1 rate=2]]
 +
|}
 +
----
 +
Для '''Rate''' = 3
 +
{|
 +
|[[File:Doc_pruning_rate3_scale10.jpg|200px|thumb|scale=10 rate=2]]
 +
|[[File:Doc_pruning_rate3_scale6.jpg|200px|thumb|scale=6 rate=2]]
 +
|[[File:Doc_pruning_rate3_scale4.jpg|200px|thumb|scale=4 rate=2]]
 +
|[[File:Doc_pruning_rate3_scale3.jpg|200px|thumb|scale=3 rate=2]]
 +
|[[File:Doc_pruning_rate3_scale2.jpg|200px|thumb|scale=2 rate=2]]
 +
|[[File:Doc_pruning_rate3_scale1.4.jpg|200px|thumb|scale=1.4 rate=2]]
 +
|[[File:Doc_pruning_rate3_scale1.jpg|200px|thumb|scale=1 rate=2]]
 +
|}
 +
 +
----
 +
Для '''Rate''' = 4
 +
{|
 +
|[[File:Doc_pruning_rate4_scale10.jpg|200px|thumb|scale=10 rate=2]]
 +
|[[File:Doc_pruning_rate4_scale6.jpg|200px|thumb|scale=6 rate=2]]
 +
|[[File:Doc_pruning_rate4_scale4.jpg|200px|thumb|scale=4 rate=2]]
 +
|[[File:Doc_pruning_rate4_scale3.jpg|200px|thumb|scale=3 rate=2]]
 +
|[[File:Doc_pruning_rate4_scale2.jpg|200px|thumb|scale=2 rate=2]]
 +
|[[File:Doc_pruning_rate4_scale1.4.jpg|200px|thumb|scale=1.4 rate=2]]
 +
|[[File:Doc_pruning_rate4_scale1.jpg|200px|thumb|scale=1 rate=2]]
 +
|}
 +
 +
----
 +
Чтобы при движении камеры не происходило резкого изчезания волос (на низких значениях прунинга волосы очень широкие - и при переходе волосом порога прореживания будет грязь). Для исключения этого эффекта нужно использовать параметр ширина прореживания ('''Degradation Widht''').
 +
 +
Для '''Rate''' = 4, '''Degradation Widht''' = 20
 +
{|
 +
|[[File:Doc_pruning_rate4_width20_scale10.jpg|200px|thumb|scale=10 rate=2]]
 +
|[[File:Doc_pruning_rate4_width20_scale6.jpg|200px|thumb|scale=6 rate=2]]
 +
|[[File:Doc_pruning_rate4_width20_scale4.jpg|200px|thumb|scale=4 rate=2]]
 +
|[[File:Doc_pruning_rate4_width20_scale3.jpg|200px|thumb|scale=3 rate=2]]
 +
|[[File:Doc_pruning_rate4_width20_scale2.jpg|200px|thumb|scale=2 rate=2]]
 +
|[[File:Doc_pruning_rate4_width20_scale1.4.jpg|200px|thumb|scale=1.4 rate=2]]
 +
|[[File:Doc_pruning_rate4_width20_scale1.jpg|200px|thumb|scale=1 rate=2]]
 +
|}
 +
 +
 +
'''Prume min''' введен для ограничения величины прунинга снизу. Рекомендуемое значение 0.1. Это значит что будет прорежено не меньше 10% волос и
 +
ширина увеличится не более чем в 10 раз.
 +
 +
 +
 +
 +
  Внимание: дистанция до камеры считается в пространстве шейпа волос.
 +
  Т.е. если в иерархии есть scale надо его учитывать.
 +
  Например: на трансформе волос скейл = 10. То '''pruning scale''' надо уменьшить в десять раз.
 +
 +
  Внимание: пока значение прунинга расчитывается '''для всего''' шейпа волос. По правильному было бы расчитывать для каждого волоска индивидуально.
 +
  Если это потребуется - могу сделать
 +
 +
== FAQ ==
 +
 +
Такой вопрос: можно ли прикрутить возможность указывать пассы, в которых прюнинг не должен считаться?
 +
Это для теней актуально очень. Чтобы тени можно было считать без прюнинга, если надо, а бьюти с ним?
 +
Ну и наоборот тоже.
 +
 +
* Прунинг настраивается отдельно для каждого пасса. Кстати в шейпе волос есть общий коэффициент для параметра '''Scale'''.
{{Languages|Doc/ChevelureRenderPass}}
{{Languages|Doc/ChevelureRenderPass}}

Current revision as of 08:02, 5 July 2011

Документация

Contents

ChevelureRenderPass

Create Render Pass

Дополнительная нода для задания параметров проходов. ChevelureRenderPass подключается к шейпу волос. К одному шейпу может быть привязано несколько проходов (ChevelureRenderPass). В проходе задаются фильтры - для указания в каких проходах рендера будет участвовать.

Таким образом можно, например, для прохода final и shadow использовать разную ширину волос, включать прореживание и т.д.

Если у шейпа волос нет ни одного пасса, настройки рендера берутся из панели Render

Как работает

В рендермане в момент рендеринга доступны 2 атрибута: pass_class и pass_id. pass_class может быть стандартный (final, shadow, ...). pass_id похоже на имя камеры, хотя и не всегда. Все вопросы к документации на рендерман.

Создание

Выделить шейп волос. Далее в меню Chevelure/Add Render Pass.

Примечание: при создании устанавливаются коннекты атрибутов рендера от шейпа волос к проходу. Это сделано для наследования параметров по умолчанию. Если требуется изменить их, необходимо отрубить коннект.

Настройка фильтров

ChevelureRenderPass

Есть 8 стандартных классов проходов: "final", "shadow", "reflection", "environment", "depth", "reference", "archive", "photon". Также в атрибуте pass Classes можно перечислить пользовательские проходы. Разделитель пробел. Атрибут PassIds необходим если нужно указать конкретную камеру для которой будет работать ChevelureRenderPass.

Настройки фильтров собраны в секции Pass

Для проверки необходимо включить dump information в шейпе волос см. Render. После этого при рендере будет выдаваться информация о pass_class, pass_id и прошедших фильтрацию проходах.

Например:

pass_class=final pass_id=untitled
bInstanced=0
defaultPass is valid

Или:

pass_class=final pass_id=untitled
bInstanced=0
chevelureRenderPassNode1 is valid
chevelureRenderPassNode2 is valid


Примечание:

Можно ли не указывать pass_id?
Да, если не указано pass_id фильтрация по нему не производится.
Прости, еще вопрос, а tolower ты делаешь?
Сравнение производится без учета регистра


Настройка рендера

Для прохода можно включить свой тип рендера и прореживание. Прореживание тесно связано с прунингом. Так что стоит изучить. Также к настройкам рендера относится рендер ширина, число сегментов, интерполяция, настройка нормалей, прозрачность и т.д.

Тип рендера

  1. Кривыми (HAIR)
  2. Полигональными трубками (TUBES)
  3. Сабдивными трубками (SUBDIVTUBES)
  4. Инстансами (INSTANCES)
Примечание: инстансами - только в случае если они заданы в основном шейпе волос.

Включение Render Clumps заставляет рендерить только центры клампов. Это иногда дает хорошие результаты в проходе теней. Необходимо еще включить Use Clump Radius As Width и настроить Width Bias.

Прореживание

Используется для оптимизации рендеринга.

Прореживание (Degradation) задается в процентах. 100% значит будут рендерится все волосы, 50% - половина и так далее.

degradation=100%
degradation=66%
degradation=33%
degradation=1%

Ширина прореживания (Degradation Widht): процент волос которые изменяют свою ширину до нуля. Эта величина используется для прунинга. Чтобы волосы скачком не исчезали из кадра, а плавно изменяли ширину до 0.

degradation=56% width=50%
degradation=45% width=50%
degradation=34% width=50%
degradation=23% width=50%
degradation=12% width=50%
degradation=1% width=50%

Рендер ширина

Render Width тут понятно.

Mul Width by Lenght умножать ширину волоса на коэффициент длины. Используется когда волосами рисуются мелкие предметы, например камни. В этом случае они не будут изменять геометрических пропорций. Примечание: для правильного текстурировании таких предметов нужно отключать опцию dice hair.

Width bias добавка к ширине каждого волоса. Используется для тонких настроек.

Число сегментов и интреполяция

Для разных проходов может быть задана меньшая или большая тесселяция волоса. В зависимотри от требуемой картинки. Чем выше тесселяция тем медленней рендер и тем больше ресурсов он кушает.

Интерполяция тут понятно

Другие настройки

Прозрачность надо вспоминать

dice hair

sigma hiding

Направление нормалей

double side

reverse orientation

Motion blur

Уровни детализации

Использование механизма RiDetails. надо вспоминать

Прунинг

Механизм адаптивного расчета прореживания в зависимости от удаления волос от камеры. Самый мощный аппарат для оптимизации рендеринга больших сцен.

 Статья "Stochastic Pruning" 
 Robert L. Cook John Halstead 
 Pixar Animation Studios
 File:Doc Pruning.pdf

Считает степень прореживания и фактор увеличения ширины исходя из расстояния до камеры. Т.е. при удалении камеры от объекта будет рендерится меньше волос, но они будут шире. Дабы не терять ощущение плотности.

Прунинг настраивается через параметры Rate, Scale и Prume min.

Прунинг не будет работать если расстояние до камеры меньше Scale.

Формула такая:

prune = pow( distance/Scale, -log Rate(2))
distance - дистанция до камеры
  • если получилось prune = 0.5 то будет рендерится 50% волос шириной в 2 раза больше.
  • если получилось prune = 0.25 то будет рендерится 25% волос шириной в 4 раза больше.
  • и т.д.
Расчитаное значение прунинга для конкретной камеры можно посмотреть в логе рендеринга при включенной dump information
File:Doc_pruning_dump.jpg
 Пример: Rate=2, Scale=10
 * дистанция <= 10 - рендерится полное число волос
 * дистанция = 20 - рендерится 50% 
 * дистанция = 40 - рендерится 25% 
 * дистанция = 80 - рендерится 12.5% 

Для визуального представления зафиксируем дистанцию до камеры (в данном случае 10) и будем изменять параметр Scale.

Скачать тестовую сцену: File:Doc Pruning.mb


Для Rate = 2

scale=10 rate=2
scale=6 rate=2
scale=4 rate=2
scale=3 rate=2
scale=2 rate=2
scale=1.4 rate=2
scale=1 rate=2

Для Rate = 3

scale=10 rate=2
scale=6 rate=2
scale=4 rate=2
scale=3 rate=2
scale=2 rate=2
scale=1.4 rate=2
scale=1 rate=2

Для Rate = 4

scale=10 rate=2
scale=6 rate=2
scale=4 rate=2
scale=3 rate=2
scale=2 rate=2
scale=1.4 rate=2
scale=1 rate=2

Чтобы при движении камеры не происходило резкого изчезания волос (на низких значениях прунинга волосы очень широкие - и при переходе волосом порога прореживания будет грязь). Для исключения этого эффекта нужно использовать параметр ширина прореживания (Degradation Widht).

Для Rate = 4, Degradation Widht = 20

scale=10 rate=2
scale=6 rate=2
scale=4 rate=2
scale=3 rate=2
scale=2 rate=2
scale=1.4 rate=2
scale=1 rate=2


Prume min введен для ограничения величины прунинга снизу. Рекомендуемое значение 0.1. Это значит что будет прорежено не меньше 10% волос и ширина увеличится не более чем в 10 раз.



 Внимание: дистанция до камеры считается в пространстве шейпа волос. 
 Т.е. если в иерархии есть scale надо его учитывать. 
 Например: на трансформе волос скейл = 10. То pruning scale надо уменьшить в десять раз.
 Внимание: пока значение прунинга расчитывается для всего шейпа волос. По правильному было бы расчитывать для каждого волоска индивидуально. 
 Если это потребуется - могу сделать

FAQ

Такой вопрос: можно ли прикрутить возможность указывать пассы, в которых прюнинг не должен считаться? 
Это для теней актуально очень. Чтобы тени можно было считать без прюнинга, если надо, а бьюти с ним? 
Ну и наоборот тоже.
  • Прунинг настраивается отдельно для каждого пасса. Кстати в шейпе волос есть общий коэффициент для параметра Scale.
Personal tools