Тег фонг cinema 4d что это

Обновлено: 06.07.2024

si vis pacem-para bellum

2.Как разбить одну полигональную деталь на 2 детали?

Недавно кто-то про это уже спрашивал. - например команда Split.
А на счёт, что полигоны смотрят в разные стороны, то это дело проблемное, потому что например у меня команда Align Normals* не всегда срабатывает.

*исправил: вначале по ошибке написал Reverse Normals

у меня команда Align Normals* не всегда срабатывает.

Аналогично. Если не срабатывает, то приходится выделять и выворачивать наизнанку вручную: Reverse Normals (U

век живи -век учись) все время вручную разворачивал) хорошо что быстро можно выделить комбинируя команды разные)

век живи -век учись) все время вручную разворачивал) хорошо что быстро можно выделить комбинируя команды разные)

Так уточнил бы, какие команды комбинировать. А то мне неоднократно приходилось в импортированных моделях исправлять вывернутые наизнанку полигоны - делал вручную (но там было несложно - простые формы). А какой командой можно выделить только "негативные" полигоны, чтобы потом только к ним применить Reverse Normals?

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

А какой командой можно выделить только "негативные" полигоны, чтобы потом только к ним применить Reverse Normals?

@aler, @ZloyGus, не знаю есть ли специальная команда для этого — не пытался выяснять. Но, только что я придумал один способ, чтобы автоматически выделить все инвертированные полигоны:

    Поскольку на стыке инвертированных полигонов/нормалей у нас всегда ломается шейдинг, то можно применить команду Phong Break Selection (U

выделение рёбер вдоль инвертированных нормалей

    Потом делаем Fill Selection (U

    Инвертируем выделение через Invert (U

    Инвертируем нормали через Reverse Normals (U

Инвертируем нормали через Reverse Normals

Все нормали выровнены

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

Алексей, очень классно.
Я, честно говоря, тоже пробовал мудрить с Phong Break Selection, но до такой последовательности не додумался.

@Aleksei ну ты мозг. огнище!!

si vis pacem-para bellum

интересный способ! надо проверить в полевых условиях)

🙂

Уже попробовал
Метод, что предложил Алексей - это были идеальные, "лабораторные" условия, то есть ровная плоскость, ровные полигончики. Но на практике ведь так не бывает и модели могут быть самые разные.
Я взял к примеру объект Landscape с уже неровной поверхностью, произвольно выделил некоторые полигоны и инвертировал.

Reverse Normals_1.jpg

Ели у объекта увеличить Фонг, тогда действительно видно разрыв шейдинга:

Reverse Normals_2.jpg

Однако инструментом Phong Break Selection сразу выделялось как-то некорректно, потому в нём попробовал задать угол вручную и тогда стало выделяться нормально:

Reverse Normals_3.jpg

Ну а дальше выделив таким способом все вывернутые полигоны их можно инвертировать:

Reverse Normals_4.jpg

😠

В общем где-то так, но это мой первый эксперимент таким способом, потому что практически такое использовать не доводилось.
Однако в реальности приходится иметь дело с объектами другого рода, и не с плоскостями, как в примере выше, а с нормальными объёмными моделями. К примеру довелось повозиться с импортированными из FBX / OBJ моделями зданий, . и при этом немало материться на автора, который наворотил там ахинею.

Для примера сделал условный объёмчик и произвольно вывернул некоторые полигоны,

Reverse Normals_5.jpg

😞

и здесь метод с Фонг Брек Селекшеном уже не работает
Пробовал комбинировать команды Backface Culling, чтобы прятать "негативные" полигоны и потом "позитивные" фиксировать через Set Selection - оно получилось, но что-то было всё равно как-то геморно.


«Мы не можем ожидать, что у нас получится отобразить объект точно таким, каким он является в реальности, с текстурами, тенями и т.д. Мы надеемся только на то, чтобы создать изображение, которое достаточно близко к достижению определённой степени реализма».

Буй Тыонг Фонг родился в 1941 году и стал учёным-информатиком во время Вьетнамской войны. Должно быть, ему сложно оказалось завершить своё обучение в токсичной среде 60-х, не говоря уже о том, что его призвали на фронт! Но ему удалось выжить и дожить до 1975 года, прежде чем его жизнь забрала лейкемия спустя всего два года после того, как он заложил для мира фундамент современной теории освещения и затенения: шейдер Фонга. Вьетнамские имена состоят из трёх частей: фамилии, среднего имени и личного имени. То есть когда люди говорят «шейдер Фонга», они называют личное имя Буй Тыонга. Подробнее о личных именах можно прочитать в Википедии.


Не уверен, действительно ли это Фонг, но если верить Google, то да.

“Softly let the balmy sunshine
Play around my dying bed,
E’er the dimly lighted valley
I with lonely feet must tread. “

Let The Light Enter – стихотворение Фрэнсис Харпер

В основе шейдера Фонга лежит чрезвычайно лаконичная математика. Которую вам, на самом деле, знать не обязательно, если только вы искренне не желаете стать программистом графики. Однако в долгой перспективе её знание будет полезным. Ниже представлены выдержки из OpenGL Superbible, 7th Edition Грэма Сэллерса и Kronos Group ARB Foundation.

A) Некоторые концепции

Во-первых, давайте разберёмся с концепциями. Если вы хоть минуту имели дело с 3D-моделированием или разработкой игр, то вы наверняка с ними уже сталкивались, но повторение никому ещё не мешало.

A-1) Окружающее освещение (Ambient Light)

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

A-2) Рассеянное/диффузное освещение (Diffuse Light)

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


Рассеяние/поглощение рассеянного освещения от матового экрана

A-3) Блики отражений (Specular Highlight)

Как и рассеянное освещение, отражённый свет является направленным, но основан на гладкости (glossiness) поверхности; он оставляет блик (highlight), который называется блеском (shininess). В реальной жизни блеск не является неотъемлемой частью материала. На самом деле, покрытие плёнкой или капля воска добавят к блеску гораздо больше, чем что-либо остальное. Отражённый блеск — это фактор, имеющий значение от 0 до 128, потому что при значениях выше 128 он не сильно будет влиять на шейдер.


Бумага с плёнкой — плотная цветная бумага с глянцевым плёночным покрытием, настоящий подарок для ребёнка.

A- 4) Альбедо (Albedo)

Это доля падающего света, отражаемая поверхностью.

A-5) Формула Фонга

Формула вычисления материала по Фонгу имеет следующий вид:

: материал окружающего освещения (Ambient material)

: материал рассеянного освещения (Diffuse material)

: материал отражённого освещения (Specular material) и : показатель блеска

Вы можете спросить, а что насчёт векторов? Не волнуйтесь, сейчас мы расскажем и о них:

: нормаль к поверхности

: единичный вектор из затеняемой точки к источнику освещения (другими словами, вектор света)

: отражение отрицательного значения вектора света

: вектор, направленный к зрителю


B) Затенение по Гуро (Gouraud Shading)

Этот метод затенения был изобретён Анри Гуро в 1971 году. Он ни по каким параметрам не превосходит затенение по Фонгу, и сегодня в основном используется как мало нагружающий GPU метод предварительного просмотра в таких пакетах, как Cinema 4D. Его проблема в том, что генерируемый им блик выглядит как искра:


Эта проблема вызывается интерполяцией цветов между вершинами, а разрывы между треугольники возникают потому, что цвета интерполируются линейно. Эта проблема была решена только в шейдере Фонга. Давайте посмотрим, как можно реализовать затенение по Гуро на GLSL 4.1.

Листинг 1: повершинное затенение по Гуро на GLSL 4.1


А теперь фрагментный шейдер.

Листинг 2: фрагментный шейдер той же концепции.

C) Затенение по Фонгу

Прежде чем двигаться дальше, давайте запомним, что затенение по Фонгу и освещение по Фонгу — это две разные концепции. Можно избавиться от «снежинки» блика Гуро, добавив больше вершин, но зачем, если у нас есть затенение по Фонгу? В затенении по Фонгу цвет интерполируется не между вершинами (как это делается в листингах 1 и 2), мы интерполируем между вершинами нормали к поверхности, и используем сгенерированную нормаль для выполнения всех вычислений освещения для каждого пикселя, а не вершины. Однако это значит, что во фрагментном шейдере придётся выполнить больше работы, как это показано в листинге 4. Но для начала давайте рассмотрим вершинный шейдер.


Листинг 3: вершинный шейдер шейдера Фонга на GLSL 4.1.


Почти ничего не изменилось. Но во фрагментом шейдере ситуация совершенно другая.

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



свойства тэга (рис. 4.11). Рассмотрим основные свойства тэга.

В поле Material приведен образец и название выбранного материала.

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

Создадим примитив Cube, зададим по 3 сегмента на каждое ребро, переведем куб в полигональное состояние и активизируем режим Use Polygon Tool.

Выбрав инструмент выделения Live Selection, выделим (удерживая нажатой клавишу Shift) 5 полигонов на одной из граней (рис. 4.12).


Выберите в меню Selection -> Set Selection, чтобы создать тэг Polygon Selection. Когда тэг Polygon Selection появится в окне менеджера объектов (рис. 4.13), щелкните по нему левой кнопкой мыши, чтобы в окне менеджера атрибутов открылись свойства тэга (рис. 4.13, внизу). В поле Name введите имя тэга, например, Материал 1.

Присвойте объекту Cube какой-либо материал, например, brick001 (перетащив его левой кнопкой мыши на имя Cube в окне менеджера объектов). В окне менеджера объектов появится тэг материала brick001 (рис. 4.14). Щелкните по этому тэгу, чтобы открыть его


свойства в окне менеджера объектов. В поле Selection введите имя тэга Polygon Selection Tag. Это имя - Материал 1 (рис. 4.14).


Присвоенный материал будет убран со всей поверхности куба кроме полигонов, которые были включены в параметр Selection (рис. 4.15).

Повторим аналогичные действия для следующих 4х полигонов (рис. 4.16). Не забудьте предварительно снять выделение с предыдущей группы полигонов.

Присвоим второму созданному тэгу Polygon Selection Tag имя Материал 2 (рис. 4.17).

Присвоим кубу материал tile005 и впишем в поле Selection имя Материал 2 (рис. 4.18).

На рис 4.19 приведен результат: часть грани куба имеет материал brick001, а часть - материал tile005. Если сразу материал не проявляется, щелкните в окне менеджера объектов по тэгу Polygon Selection Tag Материал 1.

Можно продолжить назначать аналогичным образом материалы остальным полигонам.

Вернемся к параметрам тэга Texture Tag (рис. 4.14).


В выпадающем списке Projection приведены названия контейнеров, с помощью которых плоская текстурная карта накладывается (проецируется) на поверхность объекта. Так как поверхность объекта может быть произвольной формы (например, куб, сфера), то важно выбрать контейнер, схожий по форме с объектом. Рассмотрим контейнеры и их применение, например, для примитивов Sphere, Plane, Cube и материала brick001.


Spherical - сферический контейнер. Как видно из рис. 4.20, текстурная карта корректно спроецирована только на сферический объект.

Cylindrical - цилиндрический контейнер дает для тех же трех объектов схожий результат (рис. 4.21).

Flat - плоский контейнер корректно применим только к одной плоскости, а затем протягивается в перпендикулярных к ней направлениях. Особенно отчетливо это видно на примере куба (рис. 4.22).

Есть-ли в с4д функция сглаживания полигонов, как в максе и где?, вопрос


dimra



Просмотр профиля В 3д графике я недавно. И хотел узнать есть-ли в синьке такая функция, как сглаживание полигонов?


Zondo



Просмотр профиля


dimra



Просмотр профиля


Babuinische



Просмотр профиля dimra, имейте совесть. Это все есть в печатном и видео вариантах. Везде, даже искать не надо


dimra



Просмотр профиля Простите меня пожалуйста, но если б я нашел, то никогда не обратился.


Prayer



Просмотр профиля

Receiver Of Wisdom

ps
я про синиму ничего не знаю, что там где.


BaronCD



Просмотр профиля

Нашел только такое на ютубе Может у вас лучше получится. Или попробуйте может на cgpeers поискать какой-нибудь курс по синеме, для начинающих.


dimra



Просмотр профиля Как я понял речь идет об объекте полностью, этого полно. Я имел в виду отдельные полигоны, на подобие как в максе.


Zondo



Просмотр профиля Как я понял речь идет об объекте полностью, этого полно. Я имел в виду отдельные полигоны, на подобие как в максе.
Тебе очень повезло что я бывший юзер макса и в нем разбираюсь, но функции под названием "на подобие как в максе" я там не помню . Может это нововведение в 2019 ?
А если ты спросишь синьшиков которые только в C4D секут так они пошлют тебя лесом.
Функций для сглаживания много и тележка в придачу, попробуй задать вопрос заново (только подумай хорошо над формулировкой - это 99% успеха )


Prayer

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