Как сделать прозрачную текстуру в element 3d

Добавил пользователь Валентин П.
Обновлено: 04.10.2024

Когда включено смешивание прозрачности, когда объект визуализируется на экране, помимо значения цвета и значения глубины каждого фрагмента также присутствует прозрачность. Если прозрачность равна 1, она полностью непрозрачна, а если прозрачность равна 0, она не будет отображаться вообще.

Есть два способа добиться прозрачности в Unity

  • Тест на прозрачность (альфа-тест): этот метод не позволяет получить истинный эффект полупрозрачности. Всего 0 или 1 (полностью прозрачный и полностью непрозрачный)
  • Альфа-смешение: используйте текущую прозрачность в качестве коэффициента смешения для смешения со значением цвета, которое было сохранено в цветовом буфере.

Позвольте мне обсудить первую проблему: порядок рендеринга

Порядок рендеринга

Зачем сначала говорить о порядке рендеринга?

В предыдущих двух статьях я не баловался порядком рендеринга. Поскольку для непрозрачных объектов порядок рендеринга определяется буфером глубины.

Основная идея буфера глубины: судить об удалении фрагмента от камеры по значению в буфере глубины. При рендеринге фрагмента необходимо сравнить значение глубины со значением, уже находящимся в буфере глубины ( посылка: включить тест глубины), если его значение дальше от камеры, это означает, что рендеринг фрагмента невозможен.

Но когда мы используем наложение прозрачности, мы должны отключить глубокую запись (ZWrite).

Зачем отключать глубокое письмо?

Если за полупрозрачным объектом есть какой-либо объект, он должен быть виден, но глубокое письмо удалит его.

Таким образом, мы должны сами контролировать порядок рендеринга.



Два изображения выше - это две ситуации порядка рендеринга,

Рис. 1. Прозрачные объекты спереди, непрозрачные объекты сзади.

  • Случай 1. Если вы сначала визуализируете непрозрачный объект (включите запись глубины и проверку глубины), запишите цвет непрозрачного объекта в буфер цвета, запишите глубину в буфер глубины, а затем визуализируйте прозрачный объект (отключите запись глубины и включите тест глубины), и тогда он станет прозрачным. Цвет объекта смешивается с цветом в цветном буфере для получения правильного результата.
  • Случай 2: сначала визуализируйте прозрачные объекты (отключите запись глубины, включите тест глубины), запишите цвет прозрачных объектов в буфер цвета, а затем визуализируйте непрозрачные объекты (включите запись глубины и проверку глубины), в буфер глубины, поэтому цвет напрямую перезаписывается буфером. Получите неправильный результат.

Рисунок 2: Два прозрачных объекта.

  • Случай 1. Сначала визуализируйте прозрачный объект сзади, запишите цвет в буфер цвета, а затем визуализируйте прозрачный объект спереди.Цвет и цвет в буфере цвета смешиваются для получения правильного результата.
  • Случай 2: сначала визуализируйте передний прозрачный объект, запишите цвет в буфер цвета, а затем визуализируйте задний прозрачный объект. Цвет и цвет в цветовом буфере смешиваются, чтобы получить изображение заднего объекта перед передним объект и получите неверный результат.

Исходя из этой ситуации, Unity дает нам решение (решение большинства движков): сортировка объектов + разделение сетки.

  • Сортировка объектов: 1. Сначала визуализируйте все непрозрачные объекты и включите их проверку глубины и запись глубины. 2. Отсортируйте полупрозрачные объекты в соответствии с их расстоянием от камеры, а затем визуализируйте полупрозрачные объекты в порядке от задней части к передней (включите тест глубины, выключите запись глубины).
  • Разделение сетки: Чтобы решить оставшиеся проблемы сортировки объектов: перекрытие циклов (например: 3 объекта перекрывают друг друга), мы разделяем сетку и оцениваем порядок разделенных сеток для рендеринга.

Порядок рендеринга Unity Shader

Unity предоставляет очередь рендеринга для решения проблемы порядка рендеринга. Используйте вкладку Queue SubShader, чтобы указать, в какой очереди рендеринга находится наша модель. Чем меньше индекс, тем первым будет отображаться

5 очередей рендеринга Unity:

  • Фон: Индекс: 1000, эта очередь отображается первой.
  • Геометрия: Индекс: 2000, очередь рендеринга по умолчанию. Непрозрачные объекты используют эту очередь.
  • Альфа-тест: Индекс: 2450, эту очередь используют объекты, требующие проверки на прозрачность.
  • Прозрачный: Индекс: 3000, рендеринг в порядке от конца к началу. Объекты, использующие наложение прозрачности, должны использовать эту очередь.
  • Overlay: Index: 4000, эта очередь используется для достижения некоторых эффектов наложения и, наконец, рендеринга.

Тест на прозрачность

Пока прозрачность фрагмента не соответствует условиям, фрагмент будет удален. Используйте клип, чтобы проверить прозрачность.

Каждый блок текстуры куба имеет различную прозрачность 50%, 60%, 70% и 80%. Ниже показан эффект, когда я установил Alpha Cutoff на 0,7. Вы обнаружите, что карты прозрачности 50% и 60% исчезли.


Проверка прозрачности Код шейдера:

Смешивание прозрачности

Затем давайте посмотрим на команду смешивания, которую предоставляет нам Unity - Blend. Приведите общую семантику Blend.

  • Blend Off: выключить смешивание.
  • Blend SrcFactor DstFactor: Включите смешивание и установите коэффициент смешивания. Исходный цвет (цвет фрагмента) умножается на SrcFactor, целевой цвет (цвет уже в цветном буфере) умножается на DstFactor, а затем эти два суммируются
  • Blend SrcFactor DstFactor, SrcFactorA DstFactorA: То же, что и выше, но использовать разные коэффициенты для канала прозрачности (a) и канала цвета (rgb).
  • BlendOp BlendOperation: используйте BlendOperation для выполнения других операций с ним, а не простого аддитивного смешивания.

Формула смешивания: DstColorNew = SrcAlpha * SrcColor + (1-SrcAlpha) * DstColorOld

Ниже приведен простейший эффект настройки значения канала прозрачности AlphaScale = 0,6.


Однако такая реализация проблематична. Как упоминалось ранее, он отображается в неправильном порядке.

Решение: используйте два прохода для визуализации модели.

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

код показан ниже:

Эффект прозрачности для двустороннего рендеринга

Для куба только что, хотя он и прозрачен, внутреннюю структуру не видно. Вам кажется, что это неправильно? Что, если вы хотите увидеть внутреннюю структуру?

По умолчанию Unity будет отбирать заднюю сторону объекта (то есть внутреннюю часть), поэтому мы можем использовать команду Cull для управления тем, какая сторона примитива визуализации должна быть выбрана.

  • Cull Back: примитивы рендеринга, направленные от камеры, по умолчанию не будут отображаться.
  • Cull Front: примитивы рендеринга, обращенные к камере, не будут рендериться.
  • Cull Off: отключите функцию отсечения, все будет визуализировано. Недостатки: количество рендеров, которые нужно увеличивать в геометрической прогрессии, если оно не используется для спецэффектов, рекомендуется не включать.

Далее посмотрим на эффект:


На этот раз также выполняется проход: первый проход отображает заднюю часть, а второй проход - переднюю.

Стили 3D - это наборы параметров (3D-механизм, Затенение, Фон, и т.д.), определяющие отображение модели в 3D-окне.

Стили 3D сохраняются в Параметрах Вида. Редактирование Стиля 3D приводит к автоматическому обновлению всех видов, использующих данный Стиль.

Примечание: Для настройки Размеров 3D-окна воспользуйтесь отдельной командой, доступной в контекстных меню (Панели Вкладок и в 3D-окне).

Применение Стиля 3D

Для переключения Стиля 3D воспользуйтесь выпадающим меню Стилей 3D, присутствующим:

• в контекстном меню 3D-окна

• в Табло или в Панели Оперативных Параметров

• в контекстном меню Вкладки 3D-окна.

В списке Стилей 3D разделителем отделены Стили, использующие Векторный 3D-механизм от тех, которые используют OpenGL.

3DStylesContext.jpg

WhiteModelShadow.jpg
DetailedShading.jpg

Создание или Изменение Стиля 3D

Чтобы открыть этот диалог, воспользуйтесь командой меню Вид > Параметры 3D-вида > Стили 3D .

3DStyles.jpg

Слева отображается список Стилей 3D, присутствующих в проекте.

• Выберите любой Стиль, чтобы отредактировать его настройки, расположенные справа.

• Можно выбрать для одновременного редактирования и сразу несколько Стилей.

• Для передачи Стилей 3D (в формате XML) между проектами воспользуйтесь кнопками Импорта и Экспорта .

Выберите 3D-механизм, который требуется использовать в 3D-окне:

• OpenGL: Позволяет отображать текстуры (Покрытий), используя преимущества производительности видеокарт OpenGL. Этот механизм применяется по умолчанию. Его рекомендуется выбирать, если ваша видеокарта поддерживает OpenGL. Он оптимизирован для быстрой и плавной навигации по модели и хорошо подходит для демонстрации проектов. Копирование/вставка или экспорт из 3D-окна приводят к созданию растровых изображений.

Некоторые эффекты, например, векторная 3D-штриховка, недоступны в режиме OpenGL. Использование OpenGL не позволяет сохранять содержимое 3D-окна в виде векторных 2D-чертежей.

Нажмите расположенную справа кнопку Параметров для дополнительной настройки OpenGL.

• Векторный Механизм 3D-отображения: Создает 3D-виды без текстур и эффекта фотореалистичности. Позволяет отображать векторную штриховку (Покрытий), а изображение может выводиться на печать в любом масштабе. Содержимое 3D-окна можно сохранять в виде векторных 2D-чертежей. Копирование/вставка или печать в формате PDF приводят к созданию 2D-примитивов, таких как линии и дуги. В большинстве случаев снижает скорость навигации по моделям.

Выберите вариант Каркасный, С Удалением Невидимых Линий или С Раскраской и Тенями для данного Стиля 3D.

Примечание: При использовании механизма визуализации OpenGL можно активировать только каркасный режим или режим с раскраской и тенями.

В Каркасном режиме отображаются все ребра элементов модели. Обратите внимание, что множество расположенных друг за другом элементов затрудняет восприятие изображения.

Wireframe.PNG

В режиме Удаления Невидимых Линий (доступного только для Векторного Механизма) невидимые ребра элементов автоматически скрываются. Этот режим лучше всего подходит для демонстрации модели без раскраски и оттенения. Он также хорошо подходит для вывода 3D на печать. Изображения с Удалением Невидимых Линий можно сохранять в файлах различных 2D и 3D-форматов.

HiddenLine.jpg

В режиме Раскраски и Теней отображаются все видимые поверхности 3D-элементов с учетом расположения Солнца, настраиваемого в диалоге Параметров 3D-проекции.

Shaded.jpg

Визуализация с раскраской удобна с точки зрения:

• быстроты получения визуальной обратной связи;

• простоты оценки цветовых решений;

• создания любых демонстрационных материалов и презентаций, когда фотографическое качество изображения не является обязательным требованием.

Примечание: Если Вы определили слой как каркасный, то его элементы будут воспроизводиться в каркасном режиме, даже если Вы выбрали другой метод визуализации.

Отметьте данный маркер для активации прозрачности элементов в режиме Раскраски. На рисунке ниже показана стеклянная стена с отключенным и включенным эффектом Прозрачности.

TranspOff.PNG
TranspOn.PNG

Параметры Прозрачности сохраняются вместе с видами.

Примечание: При использовании Векторного Механизма Прозрачность не действует для Postscript-принтеров.

Активировав маркер Монохромная Модель , можно настроить единые цвета для отображения всех Поверхностей и Контуров элементов модели.

В противном случае цвета поверхностей определяются Строительными Материалами элементов.

Окно Предпросмотра позволяет увидеть эффекты, получаемые при изменении настроек:

При помощи полей Цвета Неба и Цвета Земли можно настроить цвета фона 3D-окна.

Для применения единого цвета фона нажмите кнопку с изображением цепочки.

• Визуализации: Активируйте этот маркер, чтобы использовать в качестве фона изображение, выбранное в диалоге Параметров Визуализации.

Окно Предпросмотра позволяет увидеть эффекты, получаемые при изменении настроек:

Активируйте этот маркер для отображения контуров элементов модели в режиме С Раскраской и Тенями. Качество показа контуров можно настроить при помощи расположенного справа выпадающего меню.

• Вариант Качественный дает прекрасные результаты, но может приводить к снижению производительности при отображении больших и сложных 3D-моделей.

• При выборе Чернового показа контуров повышается скорость навигации, но качество контуров существенно снижается.

Ниже находятся регуляторы настройки толщины линий.

• Контуры . Параметры толщины Контуров применяются при отображении всех соединяющихся многоугольников поверхностей.

• Силуэты (учитывается только при использовании Векторного Механизма). Параметры толщины линий Силуэтов действую при отображении только одного многоугольника поверхности (все остальные поверхности не попадают в поле зрения камеры).

Векторная Штриховка (учитывается только при использовании Векторного Механизма)

Векторная Штриховка может отображаться в режимах Удаления Невидимых Линий и Раскраски с Тенями при условии, что 3D-штриховка настроена в диалоге параметров Покрытий.

Для получения дополнительной информации, см. Покрытия .

Примечание: Векторная 3D-штриховка также доступна в окнах Разрезов/Фасадов/Разверток и 3D-документов, но ее использование настраивается отдельно в диалогах Параметров этих видов и проекций.

Контуры Теней (учитывается только при использовании Векторного Механизма)

Этот параметр становится доступен только при активации Солнечных Теней (см. ниже).

Активируйте этот маркер для создания солнечных теней средствами ARCHICAD.

При использовании Векторного Механизма становятся доступны следующие дополнительные настройки Солнечных Теней:

• Яркость Теней: Воспользуйтесь регулятором для настройки яркости Солнечных Теней.

• Контуры Теней: Активация этого маркера приводит к созданию линий контуров падающих теней.

• Воспользуйтесь выпадающим меню для выбора мест создания Солнечных Теней:

– на всех поверхностях или

– только на заданном уровне (то есть, на горизонтальной плоскости). Последний вариант удобен для анализа отбрасываемых теней на видах сверху. При выборе этого варианта укажите значение абсолютного возвышения горизонтальной плоскости, на которой будут строиться векторные тени.

• Собственные Солнечные Тени: Если этот маркер не отмечен, то все одинаковые поверхности окрашиваются в один цвет без учета их ориентации.

Узловые Точки GDL-объектов

• Показ 2D-узловых точек: Активируются Узловые Точки 2D-редактирования. В этом случае появляются дополнительные точки редактирования в 3D-окне.

• Только 3D-узловые точки

Примечание: Если объект GDL вообще не имеет 3D-узловых точек, то 2D-узловые точки будут отображаться всегда вместе со своими копиями, спроецированными на значение высоты zzyzx, при условии, что для объекта задан этот параметр.

Всем привет, хотел бы узнать как правильно добиться следующего результата:

Результат

то есть положить на плоскость PNG с прозрачной областью и что-бы эта прозрачность сохранилась при рендеринге.

Я сделал текстуру и карту в фш, видно, что все, что не мята то альфа.

Текстура

Test.jpg

Карта

TestMap.jpg

И такую связку нодов: (откройте изображение в новой вкладке для зума)

Ноды

Вопрос: Правильно ли мешать трансперент с текстурой? В ней ведь итак есть прозрачная область, мне кажется я сделал что-то не так, почему он не видит прозрачность сразу? Как на примере:

''), array("string" => ''), ); if (!isset($_COOKIE['rek'])) < print($banners[$GLOBALS["banner_num"]]["string"]); >elseif ($_COOKIE['rek'] == "rek1") < print($banners[0]["string"]); >elseif ($_COOKIE['rek'] == "rek2") < print($banners[1]["string"]); >?>

Помощь по настройке прозрачных VRay материалов

Во второй части мы полностью разобрались со свитком отражений V-Ray материалов, а в этой начнём разбирать прозрачность.

Следующий свиток Refraction - преломление (или прозрачность).

Настройки прозрачности в V-Ray

Эти настройки влияют на то, как материал будет пропускать свет через себя. Материалы, которые обладают преломляющими свойствами это обычно стекло, вода, драгоценные камни, прозрачный пластик и т.д.

Первый параметр – цвет преломления (Refract color). Как и прежние, он варьируется от черного (нет преломлений - полностью непрозрачный) до белого (полностью прозрачный), всё что между этими цветами - это что-то среднее между цветом (Diffuse) и прозрачностью (Refraction).

Ниже даны несколько примеров с черным цветом в слоте Diffuse. Я рекомендую использовать черный цвет [1;1;1] в слоте Diffuse для всех прозрачных материалов, а конечный цвет настраивать с помощью цвета преломления (Refract color) и цвета тумана (Fog color).

Сила прозрачности VRay материала

Вы также можете использовать в качестве значения прозрачности сплошной цвет, растровое изображение или процедурную карту:

Разница между цветом, текстурой и процедурной текстурой для прозрачности V-Ray материала

Глянцевитость преломлений (Refraction glossiness).

Как и в случае с отражениями, вы можете изменить размытость преломлений. Этот эффект великолепно подходит для замерзшего стекла или других поверхностей, которые легко пропускают свет, но искажают его путь сквозь материал.

Однако этот параметр увеличивает время рендеринга и может добавлять шум, так что будьте осторожны. Для большинства материалов не стоит ставить значение меньше 0.6.

Глянец прозрачности для материалов VRay

Чтобы избавиться от шума, как и прежде можно увеличивать параметр Subdivs.

Как видно на примерах ниже, большие значения этого параметра дают отличный результат, но резко увеличивают затраты времени на просчет. Время рендеринга почти в 7 раз выше, чем при значении по умолчанию! И в 15 раз дольше рендерится картинка относительно материала БЕЗ размытия преломлений! Так что если вам нужен быстрый результат, используйте по минимуму сабдивов:

Качество преломлений (размытость и шум) VRay материала

Показатель преломления для VRay материала

Значения показателя преломления (IOR) давно просчитаны для различных материалов, так что вам не нужно их угадывать. Вы можете найти табличные значения IOR в интернете. Вот некоторые из материалов:

Агальматолит 1.550
Агат 1.544
Актинолит 1.618
Алкоголь 1.329
Алмаз 2.417
Аметист 1.544
Ацетон 1.36
Бирюза 1.610
Вода (пар) 1.000261
Вода (комнатной температуры) 1.33157
Воздух 1.0002926
Жадеит 1.665
Жемчуг 1.530
Золото 0.47
Зубная эмаль 1.540
Изумруд 1.576
Каменная соль 1.544
Кварц 1.544
Кварц, плавленый 1.45843
Кислород (газ) 1.000276
Кислород (жидкий) 1.221
Лёд 1.309
Лунный камень, Альбит 1.535
Малахит 1.655
Метанол 1.329
Нейлон 1.53
Нефрит 1.610
Оникс 1.486
Опал 1.450
Пластик 1.460
Плексиглас 1.50
Полистирол 1.55
Резина, натуральная 1.5191
Рубин 1.760
Сапфир 1.760
Свинец 2.01
Силикон 4.24
Скипидар 1.472
Слоновая кость1.540
Спирт 1.329
Сталь 2.50
Стекло 1.51714
Стекло, кремниевое, лантан 1.80
Стекло, кремниевое, легкое 1.58038
Стекло, кремниевое, плотное 1.66
Стекло, кремниевое, самое тяжелое 1.89
Стекло, кремниевое, среднее 1.62725
Стекло, кремниевое, тяжелое 1.65548
Тигровый глаз 1.544
Топаз 1.620
Турмалин 1.624
Хрусталь 2.00
Цирконий, Кубический 2.170
Этанол 1.36
Этил алкоголь 1.36
Янтарь 1.546

Кстати, есть отличная таблица с показателем преломления более чем 130 разновидностей драгоценных камней с картинками.

Max depth.

Значение максимальной глубины (Max depth) работает также как и в отражениях. Установленное по умолчанию значение обычно хорошо подходит. Но для сцен с большим количеством стоящих один за другим прозрачных объектов, может понадобиться его увеличивать.

Секретик: чтобы получить красивый стакан с напитком внутри нужно для стекла и напитка использовать разный IOR. Также нужно сделать, чтобы меш напитка находился немножко внутри меша стакана. Не забывайте смоделировать мениск (это когда поверхность жидкости при контакте с твёрдой поверхностью изгибается за счёт молекулярного взаимодействия на границе раздела трёх сред: жидкость, твёрдое тело и воздух).

Подпишитесь на обновление блога (вот 3 причины для этого).

Похожие статьи:

    Продолжаем рассматривать настройки прозрачных VRay материалов. Цвет тумана (Fog Color). Параметр Fog Color просто необходим, если вы хотите сделать оттенки… В предыдущих частях этой повести о настройках VRay материалов мы уже рассмотрели все настройки материала VRayMtl, а также материала VRayBlendMtl.… Обновление (30.03.2012): добавил описание галочки Use interpolation и параметра Fresnel IOR. Продолжаем изучать материалы Ви-Рея. В прошлой части руководства по… Прежде чем вы приступите к этой статье, я рекомендую вам сначала ознакомится со статьёй Наука создания фотореалистичного 3D. Где рассказано… В этой части руководства по VRay материалам мы закончим разбираться со стандартным VRayMtl и приступим к рассмотрению VRayBlenMtl. Свиток Maps.… Это пятая часть серии статей о реалистичном 3D. Другие части читайте тут: первая - основы создания фотореалистичного 3D, вторая -… Это продолжение шикарной серии статей о настройке основных VRay материалов: VrayMtl, VRayBlendMtl и VRayFastSSS2. В этой части заканчиваю обзор материала…


Вам понравилась статья ? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.

комментариев 11 к статье “Помощь по материалам V-Ray, часть 3. Преломление или прозрачность”

сколько уже изучаю 3ds max, с материалами так и не научился работать (
Моделировать нравиться, а вот материалы делать, во-первых: непонятно, а во-вторых: нудно для меня почему-то.

Ух! Вот это удружил, ну спасибо! Огромнейшее! 🙂

Шикарно, спасибо, скорей бы про SSS

Ух ты! Спасибо огромное.

Но что-то я запутался между Fresnel IOR и просто IOR, не совсем соображаю, выше предоставленные параметры для IOR? Или Fresnel IOR? Там и кость слоновая…

Onrike, у меня почему-то наоборот, руки чешутся скорей начать виз делать))) А раньше было точно так как у тебя.

А я то всё никак понять не мог)) Ну зачем же свинцу IOR прозрачности, а если это не прозрачность то почему он есть в этом списке и.д
Я хоть и не новичок в визе, но есть вещи которые не всегда понятны.
Спасибо большое за ответ))

Вроде как, абсолютно любой материал пропускает внутрь себя свет. Свинец свет пропускает, но мало. IOR нужен для того, потому что он участвует в рассчете в формуле отражений по Френелю.

В таком случае, почему индекс золота равен 0.47? Ведь значения, по-идее, находятся в диапазоне от 1 (свет не преломляется) и выше (изменяется угол). Может я чего-то не понял? Или опечатка? Прокомментируйте пожалуйста.

Читайте также: