forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Как сделать туман войны? (http://forum.boolean.name/showthread.php?t=11718)

Damp 12.01.2010 19:32

Как сделать туман войны?
 
Для стратегии, чтобы только вблизи юнита было видно карту.
Вообще чего-то туго... ни чего не получается.
Сделал с простым туманом, типа если далеко от юнита приблизить туман, как-то не очень прикольно...
Может кто делал?

Randomize 12.01.2010 19:39

Ответ: Как сделать туман войны?
 
Эхх...
Так создаёшь некий вспомогательный тип:
Код:

Type TFogOfWarHelper
Field x%
Field y%
Field life#
End Type

Дальше life каждого хелпера по дефолту допустим 10000 и постоянно уменьшается если рядом нет юнитов, если есть то 10000 фиксировано.
Хелперы создаются юнитом во время движения допустим каждые 2 секунды новый хелпер.
Затемнение делай системой квадов, которые будешь текстурой с маской просвечивать.

Damp 12.01.2010 19:44

Ответ: Как сделать туман войны?
 
Не очень понял )) По подробнее бы...

ffinder 12.01.2010 20:34

Ответ: Как сделать туман войны?
 
Цитата:

Сообщение от Damp (Сообщение 133225)
Для стратегии, чтобы только вблизи юнита было видно карту

это разведанная территория. "туман войны" распространяется только на видимость юнитов.

Damp 13.01.2010 09:27

Ответ: Как сделать туман войны?
 
Ну может и так. Ни чего не получается.
Пробовал повесить плоскость над картой и рисовать в альфу над юнитом, стобы типа открывать видимость. Эффект конечно получить можно, но он сжирает половину фпс, этож надо постоянно сначала восстанавливать невидимость а потом на основании новых координат снова делать, ладно 1-2 юнита, а если 100... барада вобщем ))

Damp 05.02.2010 15:02

Ответ: Как сделать туман войны?
 
Решение всетаки существует )) уже прикручиваю.
Работает с помощью функции 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

mauNgerS 01.02.2011 07:04

Ответ: Как сделать туман войны?
 
А как быть с координатами?
Чтобы просвет был именно над юнитом?
PickedX()?
EntityX()?

MrFrosT1 01.02.2011 16:02

Ответ: Как сделать туман войны?
 
Как то не так получился туман войны. Просто карты вобще не видно.

mauNgerS 05.02.2011 10:30

Ответ: Как сделать туман войны?
 
Сделал билбоард.
Затем закрыл карту этими билбоардами. назначил им EntityPickMode 2
Где есть пик убираю билбоард.
Работает вроде нормально, но у такого тумана резкие края (билбоар-квадрат без текстуры, с текстурой плохо), и тормозровато(((
Может кто знает про туман в этой теме?

Alex_Noc 11.02.2011 00:49

Ответ: Как сделать туман войны?
 
натумань и воюй!!

Nex 11.02.2011 09:47

Ответ: Как сделать туман войны?
 
Сделай в игре дымовые шашки.

mauNgerS 11.02.2011 20:16

Ответ: Как сделать туман войны?
 
Получилось:)
EntityX:)

Igor 11.02.2011 21:02

Ответ: Как сделать туман войны?
 
Казаки: Европейские войны

Жанр: Историческая стратегия реального времени
Дата выпуска: IV квартал of 2000
Требования к системе: Pentium 200 или выше,
32 MB RAM (рекомендуется 64 MB), Sound card
В этой игре как-то очень хитро сделали туман, так как игра не тормозила при 500 и больше юнитов на компах тех времён.
Как они это сделали? Только сейчас задумался...

LLI.T.A.L.K.E.R. 11.02.2011 22:14

Ответ: Как сделать туман войны?
 
По сравнению с возможностями Blitz3D... WarCraft 2000, StarCraft и т.п. более продвинуты по "туману войны".

А CS 2D на Blitze сделан?
Просто инфа у меня когда-то мелькнула..
И Carnage Contest..

Может они на BMax? А то там и туман войны, сервак под Linux :dontknow:

А так стоит поискать теорию, например "fog of war ... ммм система? способ?" Чё по англ писать то?..

Вот пока тупо чего нашёл:
http://en.wikipedia.org/wiki/Fog-of-war

Nex 12.02.2011 06:53

Ответ: Как сделать туман войны?
 
Секрет скорости Казаков


Часовой пояс GMT +4, время: 02:38.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot