DOOMer
1601 постов
Карма: 103
#1 21 декабря 2011 в 13:16
На днях с Сергеем чуть затронули тему о количестве зеркал в кадре в quake 3.&nbsp; Сделал я тестовую карту,&nbsp; скомпилил и получил несколько неожиданные результаты.<br /><br />Вот план карты - все довольно примитивно (скрин кликабельный, как и все последующие в этом сообщении).<br /><br />
<br /><br />В точке A находится респавн, с которого можно пойти в 2 направлениях.&nbsp; В комантае B расположены 3 зеркальных поверхности на правой (по этому плану) стене. Два зеркала на одной плоскости, а третье - в небольшой нише между ними. Выглядит это вот так - все работает нормально.<br /><br />
<br /><br />В комнате С все приблизительно так же. Но только зкркала расположены на разном расстоянии от любой точки в данной локации.&nbsp; И вот тут получаем в лоб артефактом, известным как&nbsp; 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-баг?
Вертексы должны образовывать конвексный браш
My Quake Maps

Core i7 8700 3.3 Ghz, 32 Gb RAM, GeForce RTX2060s
Gentoo Linux [amd64] | Windows 10 Home



сохранись перед дверью...два раза =)
Heku4
80 постов
Карма: 3
#2 21 декабря 2011 в 15:24
Не хочу тебя огорчать, но может быть дело в том что объекты misc_portal_surface в комнате &quot;С&quot; направлены в право а не в сторону отражающей поверхности?&nbsp; :o
DOOMer
1601 постов
Карма: 103
#3 21 декабря 2011 в 15:46
Heku4, нет, их направление совсем не важно. В демо-карте, museum, которая идёт в комплеекте с GtkRadiant, этот объект также направлен совсем не в сторону поверхности отражения. Да и нет ключа angle у misc_portal_surface, судя по ent-файлу.
Вертексы должны образовывать конвексный браш
My Quake Maps

Core i7 8700 3.3 Ghz, 32 Gb RAM, GeForce RTX2060s
Gentoo Linux [amd64] | Windows 10 Home



сохранись перед дверью...два раза =)
Heku4
80 постов
Карма: 3
#4 21 декабря 2011 в 18:30
Хм. Может натолкнет на кое какие мысли.<br /><br />Когда мапил под Ку3. Ради експеримента попробовал сделать два зеркала друг на против друга.<br />В обоих была такая картина.<br />Может быть на картах в Ку3 если и могут быть несколько зеркал, то возможно что они должны смотреть в одну сторону?<br />Или-же их общее число не должно превышать 3?
DOOMer
1601 постов
Карма: 103
#5 21 декабря 2011 в 18:38
Они и смотрят в олдну сторону, только на разном удалении&nbsp; от игрока стоят. А про то что нельзя их ставить друг против друга (да и вобще чтобы одно зеркало хоть немного отражало в себе другое), это я&nbsp; знаю (читал давно ещё в каком-то буржуйском&nbsp; мануале к&nbsp; Q3Radiant много лет назад).
Вертексы должны образовывать конвексный браш
My Quake Maps

Core i7 8700 3.3 Ghz, 32 Gb RAM, GeForce RTX2060s
Gentoo Linux [amd64] | Windows 10 Home



сохранись перед дверью...два раза =)
Heku4
80 постов
Карма: 3
#6 21 декабря 2011 в 18:46
[quote author=DOOMer link=topic=709.msg15940#msg15940 date=1324492738]Они и смотрят в олдну сторону, только на разном удалении&nbsp; от игрока стоят[/quote]<br /><br />Ты меня не понял. Я имею в виду ВСЕ зеркала на карте.<br />В комнате В они у тебя смотрят в лево а в С в низ. (если смотреть на твой скрин из радианта)
DOOMer
1601 постов
Карма: 103
#7 21 декабря 2011 в 18:52
[quote author=Heku4 link=topic=709.msg15941#msg15941 date=1324493200]Я имею в виду ВСЕ зеркала на карте.[/quote]<br />Хм... все может быть =) Завтра попробую переделать карту, посмотрю как оно будет при таком расположении. <br />
Вертексы должны образовывать конвексный браш
My Quake Maps

Core i7 8700 3.3 Ghz, 32 Gb RAM, GeForce RTX2060s
Gentoo Linux [amd64] | Windows 10 Home



сохранись перед дверью...два раза =)
Heku4
80 постов
Карма: 3
#8 22 декабря 2011 в 13:49
DOOMer ну как? Експеримент удался?&nbsp; ;)
Берсеркер
2326 постов
Карма: 218
#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 зеркала почти не глючат, т.к. крайние зеркала &quot;подстраховывают&quot; друг друга.<br /><br />Думаю, надо попробовать рисовать в Ку3Берсе все зеркала, может получиться.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Heku4
80 постов
Карма: 3
#10 22 декабря 2011 в 16:41
Берсеркер, а возможно сделать так, чтобы зеркала можно было делать напротив друг друга?<br />Такое, бесконечное отражение.&nbsp; :o<br />Кажется в&nbsp; DP такое есть. Или я путаю с чем-то?&nbsp; :-\