#1
21 декабря 2011 в 13:16
На днях с Сергеем чуть затронули тему о количестве зеркал в кадре в quake 3. Сделал я тестовую карту, скомпилил и получил несколько неожиданные результаты.<br /><br />Вот план карты - все довольно примитивно (скрин кликабельный, как и все последующие в этом сообщении).<br /><br /><br /><br />В точке A находится респавн, с которого можно пойти в 2 направлениях. В комантае B расположены 3 зеркальных поверхности на правой (по этому плану) стене. Два зеркала на одной плоскости, а третье - в небольшой нише между ними. Выглядит это вот так - все работает нормально.<br /><br /><br /><br />В комнате С все приблизительно так же. Но только зкркала расположены на разном расстоянии от любой точки в данной локации. И вот тут получаем в лоб артефактом, известным как Hall of Mirrors.<br /><br /><br /><br />Зеркала сделаны правильно - объекты misc_portal_surface расположены в пределах 64х юнитов от поверхности, покрытой шейдером common/mirror1 .<br /><br />Собственно архив, содержащий тестовую карту - скомпиленный bsp, упакованный в pk3 и исходный map файлы - http://cacodemon.doomer.org/quake3/mirror_test.tar.gz<br /><br />Компилировалось последней версией q3map2, проверялось на ioquake3 1.36.<br /><br />Получается что движок Quake 3 умеет рисовать более 1 зеркала в кадре, но с некотоырми ограничениями. Или же это все мои кривые руки, сотворили кривую карту и получился HoM-баг?
#2
21 декабря 2011 в 15:24
Не хочу тебя огорчать, но может быть дело в том что объекты misc_portal_surface в комнате "С" направлены в право а не в сторону отражающей поверхности? :o
#3
21 декабря 2011 в 15:46
Heku4, нет, их направление совсем не важно. В демо-карте, museum, которая идёт в комплеекте с GtkRadiant, этот объект также направлен совсем не в сторону поверхности отражения. Да и нет ключа angle у misc_portal_surface, судя по ent-файлу.
#4
21 декабря 2011 в 18:30
Хм. Может натолкнет на кое какие мысли.<br /><br />Когда мапил под Ку3. Ради експеримента попробовал сделать два зеркала друг на против друга.<br />В обоих была такая картина.<br />Может быть на картах в Ку3 если и могут быть несколько зеркал, то возможно что они должны смотреть в одну сторону?<br />Или-же их общее число не должно превышать 3?
#5
21 декабря 2011 в 18:38
Они и смотрят в олдну сторону, только на разном удалении от игрока стоят. А про то что нельзя их ставить друг против друга (да и вобще чтобы одно зеркало хоть немного отражало в себе другое), это я знаю (читал давно ещё в каком-то буржуйском мануале к Q3Radiant много лет назад).
#6
21 декабря 2011 в 18:46
[quote author=DOOMer link=topic=709.msg15940#msg15940 date=1324492738]Они и смотрят в олдну сторону, только на разном удалении от игрока стоят[/quote]<br /><br />Ты меня не понял. Я имею в виду ВСЕ зеркала на карте.<br />В комнате В они у тебя смотрят в лево а в С в низ. (если смотреть на твой скрин из радианта)
#7
21 декабря 2011 в 18:52
[quote author=Heku4 link=topic=709.msg15941#msg15941 date=1324493200]Я имею в виду ВСЕ зеркала на карте.[/quote]<br />Хм... все может быть =) Завтра попробую переделать карту, посмотрю как оно будет при таком расположении. <br />
#8
22 декабря 2011 в 13:49
DOOMer ну как? Експеримент удался? ;)
#9
22 декабря 2011 в 16:22
Погонял тестовую мапу Артёма на quake3 и q3bers.<br />Похоже, Ку3/Ку3Берс не могут рисовать более 1 зеркала в кадре; рисуют какое-то одно.<br />Причины этого попробую найти и по возможности убрать это ограничение.<br />Вроде понял почему такое ограничение: всё дело в способе рисования зеркал:<br />рендер сначала рисует зазеркалье (деля сцену плоскостью зеркала), потом просто сцену. Прочие зеркала тупо отбрасываются.<br /><br />В комнате B картинка в Ку3 почти приличная, но всё равно пролезают косяки.<br />В любой комнате в Ку3Берсе лезет HoM, но только потому, что у меня зеркала и порталы режутся огибающим прямоугольником (для повышения fps).<br />Вероятно поэтому в комнате B в Ку3 зеркала почти не глючат, т.к. крайние зеркала "подстраховывают" друг друга.<br /><br />Думаю, надо попробовать рисовать в Ку3Берсе все зеркала, может получиться.
#10
22 декабря 2011 в 16:41
Берсеркер, а возможно сделать так, чтобы зеркала можно было делать напротив друг друга?<br />Такое, бесконечное отражение. :o<br />Кажется в DP такое есть. Или я путаю с чем-то? :-\