Как получить доступ к целевой текстуре для рендеринга из родного мира в Unity (VR)?
Я хочу сделать VR из родного плагина. Это возможно?
Итак, что у меня есть, это:
void OnRenderObject()
{
GL.IssuePluginEvent(getRenderCallback(), 1);
}
Это вызывает мой родной плагин и рендерит что-то, но это делает этот беспорядок здесь.
Кажется, что я рендеринг на неправильную текстуру. На самом деле, как получить правильную текстуру / кадровый буфер или любой трюк, необходимый для рендеринга виртуальной реальности из собственного плагина OpenGL? Например, мне нужна информация о рендеринге камеры (слева или справа) для правильного рендеринга.
Есть намеки? Я пытаюсь как с Gear VR, так и с Google VR. Любой намек на любой из них можно только приветствовать.
1 ответ
Моя интерпретация заключается в том, что вместо рендеринга Unity по умолчанию из MeshRenderer вы хотите перезаписать его своими пользовательскими вызовами OpenGL.
Не зная, что вы делаете, и каким должно быть правильное поведение, я не могу помочь больше.
Я могу себе представить, что если вы настроите свои собственные состояния, такие как включение / выключение определенных тестов глубины, смесей, они будут перезаписывать любые состояния, которые Unity настроил для вас до вашей пользовательской функции. И если вы не восстановите эти состояния, Unity не знает об этом и выдает неверный результат.
Как примечание, вы можете проверить https://github.com/Samsung/GearVRf/ Это движок Samsung с открытым исходным кодом для GearVR. Будучи похожим на Unity, но с открытым исходным кодом, вы можете сделать что-то похожее на то, что вы опубликовали, зная, что происходит под ним