Показать сообщение отдельно
Старый 10.06.2013, 20:59   #2
KCEPOKC
Принтер
 
Аватар для KCEPOKC
 
Регистрация: 21.04.2013
Адрес: Больше не РФ
Сообщений: 569
Написано 342 полезных сообщений
(для 1,242 пользователей)
Злость Основы основ

Между первой и второй перерывчик небольшой, да-да-да? :D
А теперь продолжим. Во 2-ой части тутора я познакомлю Вас с самыми что ни на есть основами данной либы. А именно я Вам разберу первый туториал из одноименной папки.
А разберу я Вам его построчно.
Include "..\Includes\DevilShadowSystem.bb"
Include "..\Includes\ShadowVolumes.bb"
Include "..\Includes\UserInterface.bb"
Тут мы вызываем все нужные инклюды для проекта.
Graphics3D 1024, 768, 32, 2
SetBuffer BackBuffer()
Известное клише. Разъяснять не вижу смысла.
Cam = CreateCamera()
PositionEntity Cam, 0, 3, -8
Создаем и ставим камеру.
InitShadows(Cam)
А вот это уже интересно. Тут мы включаем тени на камеру.
Предупреждение: не рекомендуется включать тени более чем на одну камеру.
Light = CreateLight()
PositionEntity Light, 10, 10, 0
PointEntity Light, CreatePivot()
Первые две строчки: создаем и ставим на позицию свет.
Извините за «нубство» - я не понял, зачем наводить лайт на пустую точку.
SetShadowLight(Light)
Вот тут мы включаем тени для данного источника света.
c = CreateCube()
ScaleEntity c, 5, 1, 5
EntityColor c, 0, 0, 255
Делаем пол из куба. Масштабируем его, затем красим.
SetShadowMesh(c, False)
Это уже посложнее. Вот краткое объяснение в стиле родного справочника B3D:
SetShadowMesh([Entity], [True or False])
Включаем тени для данного [Entity].

True – разрешаем отбрасывать тень(по умолчанию).
False – запрещаем отбрасывать тень.

Caster = CreateSphere()
PositionEntity Caster, 3, 3, 0
EntityColor Caster, 255, 0, 0
Делаем сферку по имени «ролик» . Ставим «ролик», затем красим «ролик».
SetShadowMesh(Caster)
Аналогичная команда, что и для пола. Только без да-нет.
Теперь цикл:
While Not KeyHit(1)
	TurnEntity Caster, 1, .5, 1.5
	
	Render(1)

	Flip
Wend
Первая строчка: вращаем «ролик».
Для второй строчки у меня справочное объяснение:
Render([0-2], [anim_speed#])
Некая замена клише рендер-апдейт ворлд
Параметры:
0 – стандартный B3D рендер.
1 – рендер с тенями.
2 – дебаг рендер(Для адвенсед юзерс:D)
[anim_speed#] – заменяет аналогичный в UpdateWorld.
Ни в коем случае не использовать UpdateWorld и RenderWorld!

А флип он и есть флип.
Уффф… Последние две строчки:
FreeShadows()
End
Первой мы удаляем тени, а второй заканчиваем часть тутора.
Надеюсь, Вам понравилось:D
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо KCEPOKC за это полезное сообщение:
ant0N (11.06.2013), impersonalis (11.06.2013)