Рендеринг по окну DirectX с помощью Awesomium (полупрозрачные и округлые элементы)

Интересно, возможно ли использовать Awesomium для рендеринга GUI поверх игры DirectX 11? НЕ используйте .NET, это C ++ / DirectX 11 игра)?

Это будет включать в себя:

  1. Рендеринг сцены в окне с DirectX 11 (так же, как я делаю это сейчас).
  2. Визуализация графического интерфейса с помощью Awesomium из HTML / CSS над ранее оказанная сцена.

Обратите внимание, что некоторые элементы GUI должны быть полупрозрачный или округлый — так что это не только рендеринг на некотором прямоугольнике, но и смешивание.

Является ли это возможным? Или, может быть, я мог бы сделать это по-другому (например, сказать Awesomium использовать DirectX для рендеринга каким-либо образом)?

Или, может быть, я мог бы нарисовать полупрозрачный DirectX текстуры в Awesomium, а затем визуализировать его поверх сцены с помощью DirectX? Я знаю, что рендеринг на ресурс текстуры возможен с Awesomium, но поддерживает ли он прозрачность & полупрозрачность?

Если нет, то есть ли хорошие альтернативы тому, чего я хотел достичь с помощью Awesomium?

3

Решение

Да. Это может быть сделано.

Если вы посмотрите документацию по классу Awesomium WebView, у него есть метод surface (), который будет возвращать растровое изображение, поддерживающее представления.

Вот некоторая документация по c ++ для класса.

http://awesomium.com/docs/1_7_0/cpp_api/class_awesomium_1_1_web_view.html

Вы можете скопировать это растровое изображение в текстуру в DirectX и визуализировать его как слой поверх вашей игры, создавая пользовательский интерфейс.

Вы также должны направить и перевести ввод в Awesomium. Вы можете стилизовать свой пользовательский интерфейс так, как вам нравится, используя HTML, CSS и Javascript. Вы можете сделать его округленным таким образом и ввести прозрачность.

Я не буду повторять совершенно хороший урок по этому вопросу. Вы можете найти один здесь.

http://www.gamedev.net/blog/32/entry-2260646-sweet-snippets-rendering-web-pages-to-texture-using-awesomium-and-direct3d/

То, как вы визуализируете текстуру после того, как она написана, не имеет ничего общего с Awesomium. Выберите режимы смешивания и / или используйте шейдеры с выходной текстурой для желаемого эффекта.

0

Другие решения