|
3D Моделирование Обсуждения проблем моделирования, скины... |
05.01.2007, 05:45
|
#1
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Создание SkyBox'а. Один из видов. (Урок)
И так, в этом уроке я расскажу один из способов, как сделать небо.
Плюсы и минусы этого способа:
Плюсы:
++ В отличии от сфероидного скайбокса, вертикально сверху, нету дефектов стыковок текстуры.
+ В отличии от кубического скайбокса, не нужно делать много текстур, лишь одну, и очень просто.
+ Нет мест стыковок текстур.
Минусы:
- Вид скайбокса ограничен верхом, а то что на горизонте и ниже, пусто - Только небо.
- Солнце или подобные, большие космические тела, нужно делать отдельно, т.к. есть несоответствия в перспективе.
Что нам нужно, чтобы сделать такой скайбокс:
1. Photoshop, или другой подобный графический редактор.
2. MilkShape3D, можно и 3Д Макс, но объяснять буду как делать в MilkShap’e.
Синими выделениями я помечал места, где нужно делать действие.
Если вы впервые в милке, то включите показатели видов (Window > Show Viewport Caption)
Начнём с Модели:
1. Открываем Милку.
2. Выбираем инструмент Sphere и создаём сферу на виде сверху, с настройками:
Stacks: 12
Slices: 24
3. Выбираем инструмент Rotate и поворачиваем с настройками:
Z: 90
4. Выбираем инструмент Select и выделяем нижнюю часть сферы в виде сбоку, с настройками:
Face
Ignore Backfaces: 0
By Vertex: 1
5. Удаляем выбранное (Жмём Delete).
6. Теперь, выделяем в виде спереди, крайние фэйсы и удаляем их.
7. Сейчас у нас выходит 12х6 квадров. Выделяем в виде сбоку, лишние по 3 квадра с каждой стороны и удаляем их.
8. Теперь у нас 6х6 квадров, но форма сверху, не квадратная. В виде сверху, выделяем вертексы вертикальных рядов. И масштабируем их инструментом Scale с настройками:
X: Выкл.
Y: Выкл.
Z: Вкл.
9. Выделяем всю модель, и жмём Ctrl+Shift+F (Вывернуть все трианглы на изнанку).
10. Двигаем всю модель, чтобы самые нижние вертексы были на горизонте.
Модель готова, теперь делаем развёртку:
1. Идём в закладку Materials, и создаём новый материал (New).
2. Выделяем всю модель Ctrl+A, и присваиваем материал (Assign).
3. Теперь, жмём Ctrl+T, вылезает окно развёртки, ставим вид Top (там где по стандарту Front), далее жмём Remap. Примечание: До этого не нужно тыкать на экране развёртки, т.к. собьется Регион, и придётся его обводить инструментом Region с установленной галочкой Clamp.
Всё, скайбокс готов, теперь рисуем текстуру, но здесь я не буду объяснять поэтапно, т.к. это уже для каждого неба по своему, но есть только правила:
1. Текстура должна быть квадратной.
2. Нужно чтобы на самом верхнем слою была ограничительная картинка, цветом с фон за небом. В аттаче, png формата, с альфой, формата 1024х1024. Либо, более хороший, но менее производительный способ, это сделать текстуру, но там где маска установить альфу. Такой способ, лучше если цвет фона меняется, например смена дня и ночи.
Что делать в коде:
1. Загружаем модель
2. Загружаем текстуру и текстурим модель.
3. Масштабируем модель.
4. Ставим FX 1+8
5. Каждый цикл, ставим позицию модели на позицию камеры.
Пишите вопросы!
©MoKa
|
(Offline)
|
|
05.01.2007, 20:25
|
#2
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Re: Создание SkyBox'а. Один из видов. (Урок)
а низя взять огромную сферу такую. что бы она весь левел накрыла. отрезать половину и внутри натянуть тектуру. а пото сверху одеть это на левел ?
|
(Offline)
|
|
06.01.2007, 01:11
|
#3
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Создание SkyBox'а. Один из видов. (Урок)
будут стыки, если это только не GeoSphere.
|
(Offline)
|
|
06.01.2007, 12:09
|
#4
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Re: Создание SkyBox'а. Один из видов. (Урок)
Сообщение от Raiter
а низя взять огромную сферу такую. что бы она весь левел накрыла. отрезать половину и внутри натянуть тектуру. а пото сверху одеть это на левел ?
|
Зачем огромную? Главное чтобы в середине находилась камера, фейсы направлены вовнутрь (FlipMesh) и настроен правильно ордер (EntityOrder должен быть больше нуля) так чтобы она отрисовывалась раньше чем все остальное.
|
(Offline)
|
|
06.01.2007, 22:00
|
#5
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Создание SkyBox'а. Один из видов. (Урок)
Не используй EntityOrder, он выворачивает буффер, и альфу уже не сможешь использовать, т.к. она будет вывернута.
|
(Offline)
|
|
08.01.2007, 11:33
|
#6
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Re: Создание SkyBox'а. Один из видов. (Урок)
Почему? Я наоборот бы его использовал потому, что при использовании ордера отключается z-буффер и модель типа SkyBox, которая занимает весь экран рендерится быстрее.
|
(Offline)
|
|
09.01.2007, 01:06
|
#7
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Создание SkyBox'а. Один из видов. (Урок)
Ну если, ты не используешь текстуры с альфой или маской, то конечно пожалуста, но попробуй, затем использовать что-либо с альфой, например дерево с кроной, и увидишь что будет, поэтому появляется потребность в алгоритме сортировки трисов, что-бы нормализовать рендеринг, ну и т.д. В итоге ты тролько проигрываешь.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:44.
|