Туториал по "Devil Shadow System"
Вложений: 1
Всем привет! Я, хоть и начинающий форумчанин, хочу блеснуть своим остроумием и написать свой первый тутор по сие прекрасной либе от Devil’а:D
Так как это мой первый тутор, прошу "не судить строго" и все в таком роде:) И вообще, лучше в этой теме совсем не писать:) В общем начнем. А начнем мы с теории. Я думаю, все знают, что такое «Тень» и что такое «Shadow», про них я говорить не буду. Первое, что нужно знать – что из себя представляет данная либа. Напомню Вам, что Blitz3D не Unreal Engine 3, поэтому о графике выше Half-Life 2 можно забыть. А для того, чтобы держать графоун на уровне Halfы Вам понадовятся либы. Много либ. «Devil Shadow System» – одна из них. Она поможет Вам сделать крутые реалтайм тени, реалистичную воду, зеркала, лужицы и т.д. Один из главных недостатков – она жутко теряет производительность и стабильность при высоких нагрузках. Поэтому полигонами и крутыми текстурами «50000 на 50000 пикселав» спамить категорически запрещается. Масштабами тоже. Второе – хотя бы основы BlitzBasic и какой-никакой опыт работы с ним. Это самое важное, иначе Вы не поймете ни строчки предложенного кода. Ладно, все с теорией. Теперь нужно установить либу. DLL и Decl файлы из папки «Userlibs» кидаем в аналогичную папку в директории Blitz3D. Все, что из «Includes», понадобится нам при самой разработке. Кидаем все три файла в папку будущего проекта. Ниже сразу же вторая часть:) |
Основы основ
Между первой и второй перерывчик небольшой, да-да-да? :D
А теперь продолжим. Во 2-ой части тутора я познакомлю Вас с самыми что ни на есть основами данной либы. А именно я Вам разберу первый туториал из одноименной папки. А разберу я Вам его построчно. Код:
Include "..\Includes\DevilShadowSystem.bb" Код:
Graphics3D 1024, 768, 32, 2 Код:
Cam = CreateCamera() Код:
InitShadows(Cam) Предупреждение: не рекомендуется включать тени более чем на одну камеру. Код:
Light = CreateLight() Извините за «нубство» - я не понял, зачем наводить лайт на пустую точку. Код:
SetShadowLight(Light) Код:
c = CreateCube() Код:
SetShadowMesh(c, False) Код:
Caster = CreateSphere() Код:
SetShadowMesh(Caster) Теперь цикл: Код:
While Not KeyHit(1) Для второй строчки у меня справочное объяснение: А флип он и есть флип. Уффф… Последние две строчки: Код:
FreeShadows() Надеюсь, Вам понравилось:D |
Ответ: Туториал по "Devil Shadow System"
Юзал когда-то, ашадов лучше, ИМХО.
|
Словарик начинающего
И снова здравствуйте! Из за того, что несколько следующих обучающих исходников особо не отличаются от первого, я решил составить так называемый словарь с командами.
Код:
Render([0-2], [anim_speed#]) Код:
SetShadowMesh([Entity], [True or False],[ cache$]) Код:
InitShadows([Cam]) Код:
FreeShadows() Код:
CreateShadowSphere([True]) Код:
LoadShadowMesh([Mesh],[True]) А пока все. Позже я расскажу про бампмаппинг :) |
Ответ: Туториал по "Devil Shadow System"
Вложений: 1
Вообщем да. Сидел я себе да пёк, да вдруг вспомнил, что тутор то я не дописал. Вот теперь то да, дописал.
Код:
Как жи эта, карту висот рисовать! Чтобы привязать бампу к мешу, нам нужно начеркать нехитрый код. Код:
SetENBMMesh(entity, tex, bump, bump_frame = 0) Теперь код. Разберем пример "Tutorial4 - ENBM.bb" Весь я его затрагивать не буду, да и не надо, я так думаю. Смотрим самое важное. Код:
Include "SampleFunctions.bb" Код:
;Ball Командой "SetENBMMesh(c, CubeTex, t2)" мы говорим библиотеке привязать к сфере "c" бампмаппу "CubeTex", причем сфера у нас будет иметь стандартную текстуру "t2". Ясно? Наверное да. Далее стоило бы поговорить про эти строчки: Код:
floor_bump = LoadTexture("Media\Rock_Bump.jpg") Вот она вкратце: Код:
CreateWater(bumpmap, size = 100, round = False) Ну и все, вернемся к коду: Код:
floor_bump = LoadTexture("Media\Rock_Bump.jpg") Здесь мы командой "c = CreateWater(floor_bump, 100)" говорим блитцу, что нам надобно создать квадратную "воду" по имени "c" с размером 100, причем имеющую бампмапу по имени "floor_bump". Ну вроде все. В планах - переведенный хелп. Удачи вам в познании блитца, господа! Таки да, узнал я зачем же свет на пустую точку наводить - без этого теней вы не увидите! |
Ответ: Туториал по "Devil Shadow System"
Дык а скрин с тенями можно?
|
Ответ: Туториал по "Devil Shadow System"
|
Ответ: Туториал по "Devil Shadow System"
Цитата:
|
Ответ: Туториал по "Devil Shadow System"
Вложений: 2
Решил запилить примерчик. Вот держите. Модель танчика и все текстуры скачаны. Приятного просмотра
Управление: w-вперед a-влево s-назад d-вправо Мышка - поворот Код в комплекте. Бампмаппинг не юзал, да и смысла не вижу. |
Ответ: Туториал по "Devil Shadow System"
Вложений: 1
Перевел хелп. Наконец. Было трудно, но я сделал это.
На этом мое повествование почти закончилось - осталось только написать свой пример с ENBM. Ждемс. |
ENBM
Вложений: 2
Вот и все. Наконец я доделал тутор.
Пример с Бамп Маппингом. Все сурово, немного рябит в глазах, но главное смысл отражает: ОНО РАБОТАИТ! Извините, код не прокомментирован. Делал в в попыхах. Впрочем там все ясно. |
Ответ: Туториал по "Devil Shadow System"
Честно сказать - молодец за труды. Но если ты ожидаешь что это кому-то понадобиться, зря надеешься.
Вот на шейдерах чегонить - понадобиться кому-то, даже не столько сам код, сколько вдохновление и т.п. Я заметил что много кого шейдеры прикалывают, и друг-дружку вдохновляют. Вон на гд.ру есть темка с шейдерами, народ выкладывает картинки, и всем приятно, вдохновляет.. А вот ковыряя и так мёртвый труп - доставит только олдфагам. |
Ответ: ENBM
Цитата:
А так то да, бампмаппинг там хреново реализован. Честно. Так что ашадов меня ждет:) p.s. Извиняйте за скрин. Ща будет! |
Ответ: ENBM
Цитата:
С ашадовым такая тем, на старой версии библиотеки работали все примеры. Однако же как только автор пофиксил либу для висты и выше (до этого тени работали только на XP), начались проблемы, прежние примеры некорректно работают, например: нету мягких теней (хотя может это я не нашёл), прежние примеры бампмапинга перестали работать, есть бамп но нету тени и т. п. Понять в чём дело мне так и не удалось :( |
Часовой пояс GMT +4, время: 08:33. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot