Не знаешь, где сделать сайт???   [ на uCoz можно сделать любой, даже самый сложный сайт... ]
Текстурирование объектов (Dark Basic) - Dark Basic - Программинг - Каталог статей - Развлекательный сайт для программистов-игроделов



Категории каталога

Программинг [35]
Программинг, уроки, формулы, туториалы
Dark Basic [30]
Помощь начинающим в Dark Basic (Статьи,учебники,книги)
Blitz 3d [7]
Статьи и уроки по Blitz 3d
C/C++ [7]
Статьи по C/C++
Delphi [12]
книги, уроки, статьи, программирование в Delphi
Game Maker [12]
Статьи, помощь для программистов игроделов на Game Maker
Ассемблер (Assembler) [5]
Стати по Ассемблеру для начинающих и продвинутых программистов
ВЕБ-ПРОГРАММИРОВАНИЕ [5]
Уроки и статьи по ВЕБ-программированию

Форма входа

Приветствую Вас Гость!

E-mail:
Пароль:

Поиск

Друзья сайта



    Случайное фото

    Счётчики



    Rambler's Top100 Seo анализ сайта оптимизация

    Статистика

    Онлайн всего: 2
    Гостей: 2
    Пользователей: 0

Поддержите наш проект

WebMoney:
R309699065243
U292079291240
Z373355457648

Наш опрос

Какое ваше любимое время года?
Всего ответов: 109

Статистика

$COUNTERdiv>
Seven Quadrats of Hell

Каталог статей

Главная » Статьи » Программинг » Dark Basic

Текстурирование объектов (Dark Basic)
РУКОВОДСТВО ПО СОЗДАНИЮ 3D-ИГР
I. ОСНОВЫ

6. Текстурирование объектов

Цель урока: научиться накладывать текстуры на объекты.

    Rem Устанавливаем синхронизацию
      Sync On
      Sync Rate 30

    Rem Загружаем текстуры
      Load image "cottag02.bmp",1
      Load image "barry.bmp",2
 

    Rem Создаем кубики в случайном порядке
      For x = 1 to 5
          Make object cube x,100
          Position object x,Rnd(2000),0,Rnd(2000)
          Set object collision to boxes x
          Texture object x,1
      Next x

    Rem Создаем сферу
      Make object sphere 10,50
      Position object 10,-100,0,-100
      Set object collision to spheres 10
      Texture object 10,2

    Rem Основной цикл
      Do
       Rem  Сохраняем вертикальный угол в aY#
         aY# = Object angle Y(10)

       Rem  Управление камерой с клавиатуры
         If Upkey()=1 then Move object 10,10

         If Leftkey()=1
             Yrotate object 10,Wrapvalue(aY#-5)
         Endif

         If Rightkey()=1
            Yrotate object 10,Wrapvalue(aY#+5)
         Endif

       Rem Обнаруживаем столкновение
         If Object collision(10,0)>0
            Position object 10,X#,0,Z#
         Endif

       Rem Сохраняем положение объекта-игрока в X# и Z#
         X# = Object position x(10)
         Z# = Object position z(10)

       Rem Получаем новое положение камеры и сохраняем его в cZ# and cX#м
         cZ# = Newzvalue(Z#,aY#-180,100)
         cX# = Newxvalue(X#,aY#-180,100)

       Rem Устанавливаем камеру
         Position Camera cX#,75,cZ#

       Rem Направляем камеру на объект "Игрок"
         Point camera X#,25,Z#

       Rem Прокручиваем текстуру на кубических объектах
         Scroll object texture 1,0.005,0
         Scroll object texture 2,0,0.005

       Rem Масштабируем текстуру на кубических объектах
         Scale object texture 3,0.998,0.998
         Scale object texture 4,1.001,1.001

       Rem Обновляем экран
         Sync

      Loop

В этом уроке мы научимся текстурировать объекты. В DarkBASIC текстуры загружаются из файлов растровых изображений с расширением ".bmp". Советуем создавать текстуры с размерами кратными степени 2, так как некоторые графические карты не могут обрабатывать текстуры, размеры которых выражены нечетными числами и не кратны степени 2. Это означает, что размеры ваших изображений должны быть 256x256, 32x128, 256x16 или любых других размеров кратными степени 2. Можно загружать текстуры и большего размера, чем 256x256, но в этом случае убедитесь, что ваша графическая карта может обрабатывать такие большие текстуры.

        Load image "cottag02.bmp",1
        Load image "barry.bmp",2

Команда "Load Image" дает DarkBASIC указание загрузить изображение из файла растрового изображения. Первый параметр команды - это имя загружаемого файла растрового изображения. Имя файла нужно заключить в кавычки, иначе произойдет ошибка. В этом параметре можно использовать имена каталогов, например, "C:\Darkbasic\Images\mybitmap.bmp". Если вы храните изображения в подкаталоге проекта, в параметре необходимо указать его имя. Мы советуем создавать отдельный подкаталог, если в вашей программе много мультимедийных файлов. Второй параметр - это уникальный номер (или идентификатор) изображения, который используется так же, как при создании объекта. Нельзя присваивать один и тот же номер двум разным изображениям.

        Texture object x,1

        Texture object 10,2

Эти две строки стоят перед основным циклом. Первая строка находится в теле цикла "For Next" и служит для создания кубических объектов. Вторая внесена после того, как мы создали объект "Игрок". Команда "Texture Object" предназначена для наложения изображения на объект. Первый параметр - номер объекта, на который нужно наложить текстуру. Второй параметр - номер накладываемого на объект изображения.

        Scroll object texture 1,0.005,0
        Scroll object texture 2,0,0.005

Команда "Scroll Object Texture" перемещает (прокручивает) наложенную на объект или полигон текстуру вверх и вниз или вправо и влево. Первый параметр - номер объекта, чья текстура будет прокручиваться. Следующие два параметра - это U и V координаты. Вы можете представить их как координаты X и Y двумерной текстуры. Если присвоить этим параметрам значения, отличные от 0, текстура будет прокручиваться при каждом вызове этой команды. Можно использовать как положительные, так и отрицательные значения, в зависимости от того, в каком направлении вы хотите прокрутить текстуру на объекте. В нашем примере используется очень маленькое значение с плавающей точкой. Значения прокрутки U и V можно представить как процент от размера текстуры. Если бы мы установили значение, равное "0.5", что означает 50 процентов, текстура на кубе передвинулась бы ровно наполовину, а это - слишком быстро.

        Scale object texture 3,0.998,0.998
        Scale object texture 4,1.001,1.001

Команда "Scale Object Texture" похожа на предыдущую, только эта команда увеличивает или уменьшает масштаб текстуры на объекте. Первый параметр - это номер объекта, текстура которого изменяет масштаб (масштабируется). Следующие два параметра являются U и V координатами текстуры. Изменение этих значений на любую величину, кроме 0, увеличит или уменьшит размер текстуры. Когда эти значения равны 0, никакого изменения размеров не произойдет. Если присвоить параметрам значение меньше 1, масштаб текстуры уменьшится, и наоборот, если присвоить им значение больше 1, масштаб текстуры увеличится.

Теперь вы умеете загружать изображение из файла и накладывать его на объект, а также масштабировать и прокручивать текстуру объекта. Попробуйте внести следующие изменения, чтобы посмотреть, как они повлияют на текстурированные кубики.

Измените значения U и V в команде "Scroll Object Texture", чтобы посмотреть, как это повлияет на скорость прокрутки текстур объектов.

Измените значения U и V в команде " Scale Object Texture", чтобы посмотреть, как это отразится на масштабе текстур.



Ресурсы к урокам на Dark Basic

Категория: Dark Basic | Добавил: quadrathell (29.10.2008)
Просмотров: 670 | Рейтинг: 0.0/0 |
Всего комментариев: 2
0  
1 Я нечё не понял   (03.01.2011 13:05)
Set object collision to boxes x
Texture object x,1
Next x
Make object sphere 10,50
Position object 10,-100,0,-100
Set object collision to spheres 10
Texture object 10,2
Do
aY# = Object angle Y(10)
If Upkey()=1 then Move object 10,10

If Leftkey()=1
Yrotate object 10,Wrapvalue(aY#-5)
Endif

If Rightkey()=1
Yrotate object 10,Wrapvalue(aY#+5)
Endif
If Object collision(10,0)>0
Position object 10,X#,0,Z#
Endif
X# = Object position x(10)
Z# = Object position z(10)
Position Camera cX#,75,cZ#
Point camera X#,25,Z#
Scroll object texture 1,0.005,0
Scroll object texture 2,0,0.005
Scale object texture 3,0.998,0.998
Scale object texture 4,1.001,1.001


0  
2 quadrathell   (04.01.2011 13:26)
Что именно ты не понял ?
Можешь детальнее описать проблему ?

Имя *:
Email:
Код *:

Реклама




Новости от Radeant.com



Каталоги

Весь интернет в одном каталоге! Украинский портАл

Ещё

Весь интернет в одном каталоге!

Скрипт каталога ссылок

Партнёры Сайта

Все Партнёры

программирование:
LoBoSoFt Team - небольшая компания разрабатывающая разные игры и программки
игры софт mobile музыка:
Новости игр, новости hardware
разное - обо всём:
Сайт Эврика Моё смешное Огненный форум Phoenomix !!! Бесплатный софт - качать бесплатно Уроки фотошоп для начинающих Заработай с нами!

Стать Партнёром