|
FAQ Туториалы и часто задаваемые вопросы |
07.10.2005, 00:00
|
#16
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
2 РАХ:
Очень симпатичный пример.
И если о пользе введения повртексной генерации ландшафта можно было бы еще в принципе спорить, то вертексколоры вместо текстуры рулят очевидно и без вопросов. Респект адназначна.
Заметка: стиль проганья классный, академичен до предела. Например, используешь "Local"(!) при обьявлении переменных в теле ф-и(!!), пишешь идентификаторы типа переменной "%"(!!), да еще и используешь их повторно... Где учился? /не покажусь нахальным?/
|
(Offline)
|
|
07.10.2005, 00:07
|
#17
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Я самоучка , просто много примеров переглядел за долгое время пока пишу игру
Правда незнаю когда допишу (Bombers3D).
Да и спасибо за приятный ответ.
|
(Offline)
|
|
07.10.2005, 14:13
|
#18
|
|
diplomat
у нас всех такой код
может новички пишут по другому
но тот кто прогает больше года приходит к такому стилю примерно
только не говори что ты скромный и пушистый )
|
|
|
08.10.2005, 19:17
|
#19
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Я игрой (Bombers3D) занялся серьезно только этим летом, хотя задумал написать ее еще полтора года назад когда у меня Blitz появился
А пока вот усовершенствованная функция-генератор террейна:
Function GenerateTerrain%(SizeX#,SizeZ#,MaxHeight#,HeightMapFile$,DetailX%=0,DetailZ%=0,VertexColorsMap$="")
;#Region Собственно генератор террейна
Local HeightMapImage%=LoadImage(HeightMapFile$)
DetailX%=Abs(DetailX%): DetailZ%=Abs(DetailZ%)
;Автоматический выбор детализации используя HeightMap
If DetailX%=0 Then
DetailX%=ImageWidth(HeightMapImage%)
EndIf
If DetailZ%=0 Then
DetailZ%=ImageHeight(HeightMapImage%)
EndIf
;Это чтобы упростить нахождение высоты вертекса при несоответствии HeightMap'a
;указанной детализации
If DetailX%<>ImageWidth(HeightMapImage%) Or DetailZ%<>ImageHeight(HeightMapImage%) Then
ResizeImage(HeightMapImage%,DetailX,DetailZ)
EndIf
Local StepX#=SizeX#/Float#(DetailX-1)
Local StepZ#=SizeZ#/Float#(DetailZ-1)
Local Mesh%=CreateMesh()
Local Surface%=CreateSurface(Mesh)
Local X#,Z#,H#,K#=3*255
Local I#,J#
;Расположение вертексов
SetBuffer ImageBuffer(HeightMapImage%)
For I=0 To DetailZ-1
Z=SizeZ#*0.5-I*StepZ#
For J=0 To DetailX-1
GetColor(J,I)
H#=(ColorRed()+ColorGreen()+ColorBlue())/K ;H = 0 .. 1
X=-SizeX#*0.5+J*StepX#
AddVertex(Surface,X,MaxHeight#*H#,Z,J/Float#(DetailX-1),I/Float#(DetailZ-1))
Next
Next
SetBuffer BackBuffer()
FreeImage(HeightMapImage%)
;Создание поверхности
For I=0 To DetailZ-2
For J=0 To DetailX-2
AddTriangle (Surface%,DetailX*I+J, DetailX*I+J+1, J+1+DetailX*(I+1))
AddTriangle (Surface%,DetailX*I+J, J+1+DetailX*(I+1), J+DetailX*(I+1))
Next
Next
;#End Region
;#Region Раскрашивание вертексов
If VertexColorsMap$<>"" Then
Local ColorImage%
EntityFX Mesh%,2;Использование режима 'use vertex colors instead of brush color'
ColorImage%=LoadImage(VertexColorsMap$)
;Изменение размера ColorMap при несовпадении с детализацией
If DetailX%<>ImageWidth(ColorImage%) Or DetailZ%<>ImageHeight(ColorImage%) Then
ResizeImage(ColorImage%,DetailX,DetailZ);Это чтобы упростить нахождение цвета вертекса
EndIf
SetBuffer ImageBuffer(ColorImage%)
For I=0 To DetailZ-1
For J=0 To DetailX-1
GetColor(J,I)
VertexColor(Surface%,DetailX*I+J,ColorRed(),ColorGreen(),ColorBlue())
Next
Next
SetBuffer BackBuffer()
FreeImage(ColorImage%)
EndIf
;#End Region
UpdateNormals(Mesh%)
Return Mesh%
End Function
Решил что так будет универсальнее...
|
(Offline)
|
|
15.06.2007, 20:58
|
#20
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Re: Веселые секреты
А если вот уж прям приспичило делать с альфлй - как от туннельного эффекта избавиться?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
16.06.2007, 01:11
|
#21
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Веселые секреты
сортировать сюрфейс, немало либ для етих целей сделано.
|
(Offline)
|
|
05.07.2007, 14:53
|
#22
|
AnyKey`щик
Регистрация: 14.01.2007
Сообщений: 1
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Веселые секреты
Люди, у меня первый прпимер выдаёт 70-80,а второй.... 450-500. Так что огромное пасибо дипломату.
|
(Offline)
|
|
07.07.2007, 00:14
|
#23
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Веселые секреты
я вот думаю каким макаром он может выдавать больше 50 фпс, если там стоит иммитация игровой логики в 20 мс?
Дипломату огромный респект за красиво отрендеренные местности, надо ету технику прихватизировать.
|
(Offline)
|
|
12.12.2010, 21:33
|
#24
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Веселые секреты
Ух ты ж, сколько лет прошло!
Я эту тему за неделю второй раз ищу, а она, оказывается "Весёлые секреты" называется! Случайно забрёл сегодня.
Люди! Называйте темы так, чтоб название отражало её суть!
И, кстати, пример из первого поста актуален по сей день. Кто из блицеров не видел - советую ознакомиться.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
|
|
13.12.2010, 10:15
|
#25
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Веселые секреты
А как так "симпатично" раскрашивать ландшафт? Наложением текстуры у меня так не получалось..
|
(Offline)
|
|
13.12.2010, 10:33
|
#26
|
ТЫ ЧООО?
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений (для 7,192 пользователей)
|
Ответ: Веселые секреты
Вероятно автор клал на нолевой слой карту цвета(растянутую на весь терайн), а на первый слой детайл текстуру с Мультиплай 2)
__________________
Вертекс в глаз или в пиксель раз?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.04.2013, 02:01
|
#27
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Веселые секреты
Если у кого-то остался аттач из первого поста, выложите, пожалуйста.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.04.2013, 04:04
|
#28
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Веселые секреты
Вот.
__________________
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо mauNgerS за это полезное сообщение:
|
|
26.04.2013, 22:31
|
#29
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Веселые секреты
Кратко, в чём суть (способ эффекта)?
AddMesh?
А ну да, имеются поклетчатые mesh-и (сетки 8х8 ), к которым addmesh близкие деревья.
Пробовал как то ещё с >1000 текстурированными ящиками.b3d позиции x=0 to 100 а y=rand(-3,3)
Так вот при AddMesh хоть ты видишь один уголочек меша - он программно весь рисуется. А если отдельными все Entity - то они авто-Hide-тся.
Так что по разному случаи бывают...
|
(Offline)
|
|
27.04.2013, 14:55
|
#30
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Веселые секреты
Вот делал что-то подобное. Тут локация разбивается по сетке на сектора куда уже добавляется меш. Также есть возможность в дальнейшем обращаться к этому мешу(который уже добавился в сектор), позиционировать его, поворачивать, с текстурами на моделях проблем вроде не должно быть. Забирайте кому нужно.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:59.
|