
В диалоговом окне Material Editor У О в ячейке материала создайте новую карту Output, назовите ее Stream Receptor Face Selection (Выделение грани получения потока) и добавьте в ячейку этой карты экземпляр карты Large White Spots Birth (из материала Large White Spots). Откройте разворачивающуюся панель Output для карты Output, выставьте флажок Enable Color Map (Применить карту цвета) и сделайте точку (1,1) гладкой (точкой Безье), после чего измените кривую, как показано на рисунке. Создайте экземпляр всего дерева этой карты и включите его в ячейку Texture Map модификатора Volume Select, выставив в разделе Select By (Выделять по) переключатель Texture Map (Карта текстуры). Для модификатора Volume Select в разделе Stack Selection Level (Уровень выделения стека) выберите вариант Face (Грань), в разделе Selection Method (Метод выделения) выставьте флажок Invert (Инвертировать), а в качестве типа выделения (Selection Type) укажите Crossing (Пересечение). Наконец, добавьте в стек модификаторы Delete Mesh (Удалить каркас) и Mesh Select (Выделить каркас).

Мы использовали карту Output для усиления белых пятен вложенной карты, получив крупные области сплошного белого цвета (на месте серых областей с белым только центром), которые будут применяться в модификаторе Volume Select для выделения граней во вложенном объекте. Тип Crossing применяется, чтобы позволить любому выделению, которое граничит с не содержащейся в нем гранью, автоматически включать в себя и эту грань, что приводит к увеличению общего количества выделенных граней перед инвертированием выделения. Грани вложенного объекта выделяются для того, чтобы позволить оператору Delete Mesh удалить из выделения все грани, отличные от «белых», а оператору Mesh Select очистить выделение, вернув объект в обычное состояние.
Вернитесь к диалоговому окну ъЗ> Particle View, добавьте в последнее событие критерий Collision (Столкновения). В видовом окне Тор создайте искривление пространства SDeflector, разместив его в центре объектов Geosphere и установив параметр Diameter (Диаметр) в значение 201. Добавьте это искривление пространства в список Deflectors (Отражатели) критерия Collision. Перетащите на холст оператор Delete, чтобы создать новое событие, и назовите его Killer (Устранение). Свяжите выходы критериев Find Target и Collision со входом этого нового события. Наконец, создайте экземпляр события Stream Find Target Search, выделив его в отдельное событие, которое назовите Stream Find Target Final. Свяжите выход критерия Age события Stream Find Target Search со входом этого нового события. Удалите из нового события критерий Age и свяжите выходы его критериев Find Target и Collision с событием Killer, как это уже делалось.

Мы использовали искривление пространства Deflector, чтобы заставить объект Geo sphere захватывать все частицы, которые притягиваются его поверхностью, еще до того, как они начнут обрабатываться критерием Find Target. Это несколько увеличивает скорость расчетов и позволяет убедиться, что частицы, которые не удовлетворяют критерию Target Point (значению 1,0) полностью не игнорируются, а все же принимаются во внимание. С помощью этого искривления пространства захватываются все частицы, ударяющиеся о поверхность Солнца. Кроме этого мы (снова) передаем частицы, которые не попали на поверхность в течение трех кадров, в следующее событие, в котором задаются такие же свойства частицы, силы и другие настройки взаимодействия, что позволяет заново применить критерий Find Target для поиска частицами новых точек притяжения, а потому вызывает образование более широких и красочных вспышек.
В диалоговом окне Particle View создайте еще одну систему потока частиц (Particle Flow), назовите ее PF Source Sun Surface Fires (Поток частиц поверхностного огня), установите в разделе Particle Amount параметр Upper Limit в значение 10000000, а в разделе Integration Step в раскрывающемся списке Render выберите Frame. Переименуйте событие системы частиц на Surface Fires Emitter (Эмиттер поверхностного огня). Удалите из этого события все операторы, за исключением Birth и Display, выберите оператор Birth, установите его параметр Emit Stop в значение 500, а параметр Rate — в значение 10000. Добавьте в событие оператор Position Object, а в его список Emitter Objects — объект Sun Surface Fires Emitter. Выставьте флажок Density By Material, а в разделе If Location Is Invalid (При неправильном расположении) — флажок Delete Particles (Удалять частицы). Добавьте в событие оператор Delete, установите переключатель By Particle Age, а в поле Life Span введите значение 50 с настройкой Variation, равной 50.

Как и при потоках частиц, мы будем создавать частицы в местах эмиссии на поверхности объекта, исходя из полутоновой информации в назначенном объекту материале, а затем применять порожденные частицы, управляемые и визуализируемые с помощью специальных событий (поскольку мы удалили из текущего события оператор Shape). Режим Delete Particles в разделе If Location Is Invalid применяется, чтобы предотвратить генерацию частиц вне строго определенных зон. Оператор Delete, добавленный в это событие, имеет настройки, которые обеспечивают непрерывность цикла рождения и умирания частиц, делая поверхностный огонь «неугасающим» в течение всей длительности существования объекта!
Создайте в событии критерий 1 Spawn, установите переключатель режима Per Second (За секунду) с параметром Rate, равным 5. Создайте на холсте экземпляр оператора Shape Facing одной из других систем, чтобы получить новое событие, свяжите выход критерия Spawn со входом этого нового события и назовите последнее Surface Fire Tendrils (Языки поверхностного огня). Добавьте в это событие оператор Material Dynamic, а затем и оператор Force. Добавьте в сцену два искривления пространства Wind и включите их в список Force оператора, после чего задайте параметру Influence значение 10. Добавьте в событие оператор Speed By Surface, параметру Speed задайте значение 1,5, введя в поле Variation значение 0,5, а затем включите в список Surface Geometry (Геометрия поверхности) объект Sun Surface Fires Emitter. В конце добавьте в событие оператор Delete, установите переключатель By Particle Age с параметрами Life Span и Variation, равными 25.

Критерий Spawn применяется для эмиссии частиц в указанном количестве, визуализируемых в операторе Shape Facing следующего события. Эти частицы имеют скорости, управляемые эмитируемым объектом; чем светлее область материала, назначенного поверхности эмитирующего объекта, тем выше скорость генерируемых частиц, поэтому неоднородность поверхности геосферы автоматически обеспечивает разброс в высоте подъема эмитируемых частиц, что делает получаемый эффект огня максимально реалистичным. Мы добавили в событие оператор Material Dynamic, поскольку назначаемый системе частиц материал будет несколько отличаться от материала, который используется в основной системе потоков частиц, имитирующих вспышки. Искривление пространства Wind отвечает за правильность распределения частиц огня над поверхностью и гарантирует формирование «языков» пламени, еще больше подчеркивающих неоднородность огня. Наконец, оператор Delete удаляет частицы спустя определенное время после их рождения и предотвращает их бесконечное путешествие над поверхностью.