Render.ru
Поддержать
Сохранить
Максим Кондратьев
ПОДПИСАТЬСЯ
  • ПРЕДЛОЖИТЬ ПРОЕКТ
  • ДОБАВИТЬ В КОНТАКТЫ
1Записей
0Следят
0Читает
53.7 KЗаходов

Создание реалистичного шейдера глаза

Урок
Автор о себе:
О 3D-графике я узнал на кафедре художественной и промышленной обработки металлов в Новгородском государственном университете, где, собственно, и учился на отделении дизайна. Был у нас преподаватель - практикующий архитектор Поплевин, который предложил изучать архитектурный дизайн на компьютере. В институте не было готовых спецов, лекции по трехмерному моделированию читали бывшие выпускники ВУЗа - самоучки в 3D. Кстати, один из них как раз занимался компьютерными играми и удаленно сотрудничал с Render.Ru. Подходило время защиты дипломной работы. В мои планы входило написать ее по архитектуре, однако завкафедрой предложил другую тему - дизайн компьютерной игры. На этом проекте я реально и учился моделингу.

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

1.Создаем NURBS-сферу. Это будет модель глаза.

2.Открываем Hypershade. Создаем материал Blinn, называем его Eye_blinn1.

На канал bump назначаем текстуру ramp. С его помощью мы добьемся имитации выпуклости на роговице. Значение Bump Depth оставляем по умолчанию на единице. Меняем тип рампа (Type) на U Ramp, а Interpolation – на Smooth. Удаляем все цвета, самый верх (0.985) и самый низ (0.000) делаем белым. Низ делаем белым потому, что градиент рампа начинается не совсем от начала UV-координат, если этого не сделать, в центре глаза будет сильная вмятина J. В координатах 0.815 и 0.350 поставить черный цвет.

Цвет и прозрачность материала делаем белыми. Diffuse выкручиваем на единицу. Eccentricity в свитке Specular Shading делаем равным 0.083
Specular Roll Off – 4.562.
Reflectivity ставим 0.050, Reflected color – черный.
На канал Specular Color вешаем рамп (Type – U Ramp, Interpolation –Smooth). Значения градиента рампа: 0.960 – белый
0.805 – серый (HSV, H=0, S=0, V= 0.297)
0.565 – черный
0.130 – черный
0,000 – белый.

Результат (без прозрачности):

3. Создаем еще один материал Blinn, называем его Eye_blinn2.

4. На канал Color назначаем рамп (Type – U Ramp, Interpolation –Smooth). Значения градиента рампа: 0.970 (в зависимости от величины зрачка, чем меньше зрачок, тем больше значения) – черный, далее – сложнее: в зависимости от требуемого цвета глаз значения подбираются индивидуальные, для имитации неоднородности цвета радужной оболочки вместо значений цвета используется карта фрактального шума (fractal) измененная с помощью Color Balance. Так, в данном примере:

0.965 – фрактал, с амплитудой равной одному, Color Balance: Default color – серый, Color Gain – HSV, H= 27.35, S= 0.636, V= 0.420, Color Offset – HSV, H= 27.17, S= 0.662, V= 0.314.
0,950 – фрактал, с амплитудой равной одному, Color Balance: Default color – серый, Color Gain – HSV, H= 50.96, S= 0.424, V= 0.330, Color Offset – HSV, H= 25.88, S= 0.586, V= 0.274.
0,910 – фрактал, с амплитудой равной одному, Color Balance: Default color – серый, Color Gain – HSV, H= 25.19, S= 0.178, V= 0.376, Color Offset – HSV, H= 45.64, S= 0.214, V= 0.041.
0,890 – фрактал, с амплитудой равной одному, Color Balance: Default color – серый, Color Gain – HSV, H= 41.33, S= 0.729, V= 0.153, Color Offset – HSV, H= 41.33, S= 0.729, V= 0.000.
Дальше – проще, так как радужная оболочка закончилась, и начался белок глаза. В большинстве случаев могут подойти следующие параметры:
0.875 – HSV, H= 25.07, S= 0.105, V= 0.786
0.810 – HSV, H= 23.91, S= 0.221, V= 0.809
0.475 – HSV, H= 4.70, S= 1.000, V= 0.370
0.000 – черный.

Результат:

Для добавления капилляров на значение 0.810 можно повесить карту marble с параметрами:

Filler Color – HSV, H= 23.91, S= 0.221, V= 0.809
Vein Color – HSV, H= 360, S= 0.656, V= 0.627
Vein Width – 0.005
Diffusion – 0.100
Contrast – 0.600
Amplitude – 1.700
Ripples – 2; 2; 2
Depth – 1.0; 20.0

Результат:

5. Переходим к созданию бампа. Снова создаем карту рампа (Type – U Ramp, Interpolation –Smooth), вешаем на канал bump. Значение Bump Depth оставляем по умолчанию на единице.

Значения рампа:
1.000 – черный (HSV, H= 0, S= 0, V= -10)
0.970 (диаметр зрачка) – черный (HSV, H= 0, S= 0, V= -5)
0.965 – фрактал с амплитудой 0.400, Color Balance: Default color – серый, Color Gain – HSV, H= 0, S= 0, V= 0.165, Color Offset – HSV, H= 0, S= 0, V= 0.
в параметрах Placed Texture выставляем Repeat UV 2.0 и 5.0
0.885 – фрактал с амплитудой 0.020, Color Balance: Default color – серый, Color Gain – HSV, H= 0, S= 0, V= 1, Color Offset – HSV, H= 0, S= 0, V= 0.463.
0.720 – фрактал с амплитудой 0.060, Color Balance: Default color – серый, Color Gain – HSV, H= 0, S= 0, V= 0.306, Color Offset – HSV, H= 0, S= 0, V= 0.760.
0.345 – фрактал с амплитудой 0.050, Color Balance: Default color – серый, Color Gain – HSV, H= 0, S= 0, V= 0.372, Color Offset – HSV, H= 0, S= 0, V= 0.322.
0.090 – черный (HSV, H= 0, S= 0, V=0)
0.000 – черный (HSV, H= 0, S= 0, V= -10)

Результат Bump:

Color+Bump

6.Diffuse выкручиваем на единицу

7. Eccentricity в свитке Specular Shading делаем равным 0.347

Specular Roll Off – 0.700.
Reflectivity ставим 0.000
Reflected color – черный.

На канал Specular Color вешаем рамп (Type – U Ramp, Interpolation –Smooth). Значения градиента рампа:

0.970 – HSV, H= 0, S= 0, V=0
0.915 – HSV, H= 28.37, S= 0.465, V=0.567
0.830 – HSV, H= 196.57, S= 0.337, V=0.745
0.130 – HSV, H=360, S= 1, V=0.280
0.000 – HSV, H= 0, S= 0, V=0

Specular:

Color+Bump+Specular:

8. Заходим в HyperShade, создаем Layered shader. Называем его eye_LayeredShader. Коннектим к нему наши два материала, созданные ранее.

Сначала присоединяем eye_blinn1, он должен быть верхним (слева в редакторе атрибутов), затем eye_blinn2. Назначаем полученный материал на нашу сферу.

Результат:

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

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

Итоговый шейдер:



Файл урока: eye.mb

628
Комментарии:0
по поступлениюВсе языкиТолько русский