Як створити якісний та швидкий ефект порталу?


9

EDIT: Таким чином, я отримав портальний візуальний ефект, що не працює, і фізика налаштована на об'єкти з жорсткими тілами, що рухаються по порталах безперешкодно, і об'єкти з контролерами символів безперервно переміщуються по ньому. Єдине, що я зараз намагаюся з'ясувати - це змішати два перегляди камери, щоб отримати належний ефект переходу від першої особи. Будь-які ідеї про те, як я змішав би це двоє? Я думаю про щось, використовуючи лише шейдер на глибині або нормалізовану область перегляду. Моя основна проблема - це обчислити це в режимі реального часу та з кутами.

Тому я працював над створенням ефекту порталу в Unity3D. Очевидно, я сприйняв портал Valve як великий вплив на програмування цього. В даний час я просто використовую рентекст камери для отримання графічного ефекту, а потім деякий код, щоб зробити все інше. Проблема в 2048x2048, вона виглядає настільки ж якісно, ​​як і портал, але спричиняє великі втрати FPS. Щоб вирішити це, мені доведеться або знизити якість текстури, або кількість разів, коли я оновлюю текстуру.

Valve досягла високої якості портального ефекту, не викликаючи великих втрат частоти кадрів. Як я можу зробити те саме? Чи є у когось хороші ідеї для перетворення текстури з високою роздільною здатністю, не спричиняючи втрати кадру?

Я розглядаю можливість створення власного коду для візуалізації текстур, а не використання вбудованої системи Unity, це можливо, але, безумовно, це буде клопоту. Тому будь-які думки, ідеї чи пропозиції високо оцінюються.


3
Я не можу знайти посилання, але я пам’ятаю, що хтось сказав, що портал не використовував візуалізацію для текстури.
msell

1
Ознайомтеся з формою псевдо , портал-еска (джерело знаходиться в основному завантаженні). В Інтернеті також є інші "реалізації порталів", але я думаю, що це найвідоміше. Також грайте на порталі з коментарями розробника. У деяких з них вони говорять про проблеми впровадження порталів.
Васко Коррея

7
Я не можу зрозуміти, чому вам знадобиться текстура 2028x2048, щоб зробити портал, розміщений менше ніж 1080p, чітким. Вам, безумовно, не потрібно перевищувати роздільну здатність екрана, яку ви використовуєте для своєї гри в цілому. Я б пішов так далеко, щоб сказати, що вам слід визначити розмір екрану порталу і використовувати його для вибору рендекстуру відповідного розміру (завдяки чому він стає дуже ефективним, коли далеко, і "важче", оскільки портал отримує більше екрану
простір

1
Для візуального ефекту який підхід ви застосували? Ви придумали, як візуалізувати лише те, що було видно через портал?
поштовх

1
Ви повинні зберегти оригінальне запитання таким, яким воно було, і задати нове питання про нову проблему.
msell

Відповіді:


5

Після годин досліджень і програмування я зрозумів, як правильно отримати візуальний ефект для цього. Якщо ви хочете просто придбати портальну систему, яка працює для візуальних зображень та більшості всього іншого, що вам потрібно, ознайомтеся з пакетом Unita Portalizer.

Я програмую на C #, і цей пакет є в JS, але логіка, що стоїть за ним, неймовірно корисна і добре продумана. Взагалі я стежив за його логічним мисленням, з деякими налаштуваннями на мою гру та контролером від першої особи.

По суті, ви працюєте з модифікованою версією цього водного шейдера / сценарію. Майте в дзеркалі два дзеркала та майте камеру відтворювати те, що воно бачить у кожному відображенні, до іншого дзеркала. Вам потрібно буде створити модифіковану матрицю перетворення для врахування відносин між двома порталами. Щоб зменшити показник ефективності, прочитайте цю статтю про відсікання біля площини. Це допоможе вам зробити лише те, що потрібно бачити через портал.

Я можу створити більш детальний підручник із зображеннями та джерелом, як тільки зрозумію, як правильно поєднати камери для телепорту FPS. Зараз я занадто виснажений і зайнятий, щоб написати повний підручник, і цього має бути достатньо, оскільки він дає вам більшу частину необхідного коду.


Чи можете ви опублікувати посилання на репо?
Рома Федір
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.