|
3D-программирование Вопросы, касающиеся программирования 3D мира |
12.01.2010, 19:32
|
#1
|
Знающий
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений (для 133 пользователей)
|
Как сделать туман войны?
Для стратегии, чтобы только вблизи юнита было видно карту.
Вообще чего-то туго... ни чего не получается.
Сделал с простым туманом, типа если далеко от юнита приблизить туман, как-то не очень прикольно...
Может кто делал?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.01.2010, 19:39
|
#2
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,356
Написано 2,472 полезных сообщений (для 6,854 пользователей)
|
Ответ: Как сделать туман войны?
Эхх...
Так создаёшь некий вспомогательный тип:
Type TFogOfWarHelper
Field x%
Field y%
Field life#
End Type
Дальше life каждого хелпера по дефолту допустим 10000 и постоянно уменьшается если рядом нет юнитов, если есть то 10000 фиксировано.
Хелперы создаются юнитом во время движения допустим каждые 2 секунды новый хелпер.
Затемнение делай системой квадов, которые будешь текстурой с маской просвечивать.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Online)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.01.2010, 19:44
|
#3
|
Знающий
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений (для 133 пользователей)
|
Ответ: Как сделать туман войны?
Не очень понял )) По подробнее бы...
|
(Offline)
|
|
12.01.2010, 20:34
|
#4
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Как сделать туман войны?
Сообщение от Damp
Для стратегии, чтобы только вблизи юнита было видно карту
|
это разведанная территория. "туман войны" распространяется только на видимость юнитов.
|
(Offline)
|
|
13.01.2010, 09:27
|
#5
|
Знающий
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений (для 133 пользователей)
|
Ответ: Как сделать туман войны?
Ну может и так. Ни чего не получается.
Пробовал повесить плоскость над картой и рисовать в альфу над юнитом, стобы типа открывать видимость. Эффект конечно получить можно, но он сжирает половину фпс, этож надо постоянно сначала восстанавливать невидимость а потом на основании новых координат снова делать, ладно 1-2 юнита, а если 100... барада вобщем ))
|
(Offline)
|
|
05.02.2010, 15:02
|
#6
|
Знающий
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений (для 133 пользователей)
|
Ответ: Как сделать туман войны?
Решение всетаки существует )) уже прикручиваю.
Работает с помощью функции Rect , только нужо было не упираться в рисование альфы, а поставить правильный бленд "шторке" прикрывающей левел.
radiantor дал пример:
Graphics3D 800, 600, 32;, 1
SetBuffer BackBuffer()
SeedRnd MilliSecs()
cam=CreateCamera()
MoveEntity cam,25,25,0
TurnEntity cam,60,0,0
tex3=CreateTexture(256,256,7); Текстура маска
ScaleTexture tex3,50,50
TextureBlend tex3,1 ; Со смешиванием текстур у мя туго, но методом тыка нашел что вот с этим работает
plane=CreatePlane()
EntityTexture plane,tex3,0,2
EntityBlend plane,2 ; И вот это тоже нужно.
; Думаю есть более правильный способ наложения, но пока сойдет
plane2=CreatePlane(); Типа сама карта - поле сражения
;Чтоб было виднее эффект, можно наложить на этот плейн текстуру
EntityColor plane2,256,0,0
MoveEntity plane2,0,-5,0
AmbientLight 100,100,100
While Not KeyHit(1)
time = MilliSecs()
Color 255,255,255
SetBuffer TextureBuffer(tex3)
Cls
For i%=1 To 1000 ;
Oval Rand(256),Rand(256),5,5,1 ; Пятно для каждого из 1000! юнитов
Next
SetBuffer BackBuffer()
RenderWorld
fr = fr + 1
If MilliSecs() - frTime >= 1000
fps = fr
fr = 0
frTime = MilliSecs()
EndIf
Color 255, 255, 255
Text 5, 5, "FPS : " + fps
Flip 0
Delay 0
Wend
End
резульат )
http://damp.ucoz.ru/newfog2.jpg
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо Damp за это полезное сообщение:
|
|
01.02.2011, 07:04
|
#7
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Как сделать туман войны?
А как быть с координатами?
Чтобы просвет был именно над юнитом?
PickedX()?
EntityX()?
|
(Offline)
|
|
01.02.2011, 16:02
|
#8
|
Оператор ЭВМ
Регистрация: 11.12.2010
Сообщений: 41
Написано 11 полезных сообщений (для 14 пользователей)
|
Ответ: Как сделать туман войны?
Как то не так получился туман войны. Просто карты вобще не видно.
|
(Offline)
|
|
05.02.2011, 10:30
|
#9
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Как сделать туман войны?
Сделал билбоард.
Затем закрыл карту этими билбоардами. назначил им EntityPickMode 2
Где есть пик убираю билбоард.
Работает вроде нормально, но у такого тумана резкие края (билбоар-квадрат без текстуры, с текстурой плохо), и тормозровато(((
Может кто знает про туман в этой теме?
|
(Offline)
|
|
11.02.2011, 00:49
|
#10
|
Разработчик
Регистрация: 02.04.2007
Сообщений: 353
Написано 54 полезных сообщений (для 289 пользователей)
|
Ответ: Как сделать туман войны?
натумань и воюй!!
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Alex_Noc за это полезное сообщение:
|
|
11.02.2011, 09:47
|
#11
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Как сделать туман войны?
Сделай в игре дымовые шашки.
|
(Offline)
|
|
11.02.2011, 20:16
|
#12
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Как сделать туман войны?
Получилось
EntityX
|
(Offline)
|
|
11.02.2011, 21:02
|
#13
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: Как сделать туман войны?
Казаки: Европейские войны
Жанр: Историческая стратегия реального времени
Дата выпуска: IV квартал of 2000
Требования к системе: Pentium 200 или выше,
32 MB RAM (рекомендуется 64 M , Sound card
В этой игре как-то очень хитро сделали туман, так как игра не тормозила при 500 и больше юнитов на компах тех времён.
Как они это сделали? Только сейчас задумался...
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
11.02.2011, 22:14
|
#14
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Как сделать туман войны?
По сравнению с возможностями Blitz3D... WarCraft 2000, StarCraft и т.п. более продвинуты по "туману войны".
А CS 2D на Blitze сделан?
Просто инфа у меня когда-то мелькнула..
И Carnage Contest..
Может они на BMax? А то там и туман войны, сервак под Linux
А так стоит поискать теорию, например "fog of war ... ммм система? способ?" Чё по англ писать то?..
Вот пока тупо чего нашёл:
http://en.wikipedia.org/wiki/Fog-of-war
|
(Offline)
|
|
12.02.2011, 06:53
|
#15
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Как сделать туман войны?
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо Nex за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:43.
|