Страницы

Wednesday, 25 May 2011

Руководство по Image_3D: Источники света и цвета (часть 4 из 13)

Перевод четвертой части руководства по PEAR пакету Image_3D, оригинал http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/section4.html

Источники света и цвета

Без цвета или света, вы не можете видеть объекты в 3D пространстве. Давайте выберем момент для изучения этих двух важных пунктов, которые позволяют нам видеть свои творения.

Включите свет

Если бы вы установили цвет конуса в примере приведенном выше на красный (255, 0, 0) и удалили два источника света, в результате на изображении будет отображен черный конус на белом фоне. Красная поверхность конуса не будет видна ​​без лучей света.

Вы с легкостью можете исправить это, добавив по крайней мере один источник света - и лучше всего, если это белый свет, который лучше всего представит цвет объекта.

Один источник света будет освещать только одну сторону объекта или объектов в вашем пространстве. Добавление еще одного источника света на противоположную сторону поможет нам лучше рассмотреть объекты. Если вы используете два белых источника света, то они не будут лучше передавать характер объекта, а контрастность углов будет принимать только различные оттенки цвета объекта.

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

Управление цветами

В приведенном выше примере, вы задаете цвет объекта конуса с помощью класса Image_3D_Color. Первые три параметра для конструктора это RGB значения для желаемого цвета. Существует четвертый параметр, прозрачность, который не был показан. Добавление значения, 150, в ваш сценарий производит конус через который можно видеть частично сквозь.
$cone->setColor(new Image_3D_Color(255, 255, 255, 150));
Рисунок 4 показывает эффект прозрачности на конусе

Рисунок 4. Два наложенных 3D объекта конусов, к обоим применена прозрачность 150



Хромированное покрытие

Существует еще один эффект, который может быть применен к RGB цветам: хромированная отделка! Вместо того, чтобы поставки стандартный объект Image_3D_Color как цвет для конуса, создадим новый объект Image_3D_Color_Metal (не забудьте подключить Image/3D/Color/Metal.php, он не включен в Image/3D.php как другие классы). Смотрите листинг 3.

Листинг 3. Применение металлического покрытия к 3D объектам
require_once('Image/3D/Color/Metal.php');

$cone = $world->createObject('cone', array('detail' => 64));
$metal = new Image_3D_Color_Metal(255,255,255);
$metal->setMetal(1.25); 
$cone->setColor($metal);

Метод setMetal() принимает число с плавающей запятой в качестве параметра. Небольшие эксперименты выявили, что значения между 0,5 и 2,0 показывают лучшие эффекты. Все более 2,0 оказалось полностью размытым. Поэкспериментируйте с этим значением, чтоб увидеть как будут затронуты освещение и цвет конуса.

Другие части перевода

Перед началом работы (часть 1 из 13)
Расположение в пространстве (часть 2 из 13)
Создание вашего первого мира (часть 3 из 13)
Источники света и цвета (часть 4 из 13)
Изменение объектов и форм (часть 5 из 13)
Дополнительные объекты (часть 6 из 13)
Пользовательские формы и поверхности (часть 7 из 13)
Дополнительные драйверы вывода (часть 8 из 13)
Возвращение к практическим примерам (часть 9 из 13)
Суммарно (часть 10 из 13)
Скачать (часть 11 из 13)
Ресурсы (часть 12 из 13)
Об авторе (часть 13 из 13)

Автор перевода: reket.

No comments:

Post a comment