質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
OpenGL ES

携帯電話のような組込み機器のためにデザインされたOpenGLのサブセットです。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

解決済

Unityのプラグイン側でOpenGL ESの処理を実行させる事は可能でしょうか

fumiasi
fumiasi

総合スコア12

OpenGL ES

携帯電話のような組込み機器のためにデザインされたOpenGLのサブセットです。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

1回答

0リアクション

0クリップ

3075閲覧

投稿2017/05/09 15:42

編集2017/05/10 08:05

###前提・実現したいこと
Unityのプラグイン(dll側)でOpenGL ESの処理をいろいろと行いUnity側に反映したいと考えております。

方法を調べてみると
https://docs.unity3d.com/ja/540/Manual/NativePluginInterface.html
と記載されており、Unity側でテクスチャの実体を生成して内容を書き換えるような形で
サンプルや内容が記載されておりました。
(調べ方が悪いのか、検索した結果は上記を検証した内容の記事が多かったです。)

実装したい事は
dll側で

glEnable( GL_TEXTURE_2D ); glGenTextures( 1, &m_TexID ); glBindTexture( GL_TEXTURE_2D, m_TexID );

を呼び出して、dll側でテクスチャの実体を生成してUnity側で描画したり

dll側で

glClearColor(r, g, b, a); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

を使用して画面をクリアーしたり

glViewport(x, y, w, h);

を使用してビューポートを指定したりする事は可能なのでしょうか。

※実行環境はUnity5.6.0f3で、必ずOpenGL ESで動作するようにPlayer Setteingの
「Auto Graphics API」を変更しています。

また、
https://docs.unity3d.com/ja/540/ScriptReference/GL.InvalidateState.html
に記載されている

GL.InvalidateState();

を使用する必要はあるのでしょうか。
(GL.InvalidateStateの使用例とかも見つからなかったので、
リファレンスの内容では関係があるのか、どのようなタイミングで使用するのか今一つ判断がつきませんでした)

どなたか詳しい方がいれば、ご教授頂けますと幸いです。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

OpenGL ES

携帯電話のような組込み機器のためにデザインされたOpenGLのサブセットです。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。