OpenGL OpenGL で インスタンシング描画 OpenGL 4.x でのインスタンシング描画を試してみました。インスタンシング描画とはCPU(C++)からの描画呼び出しは1回で、同じモデルを複数回描画することを指します。このときモデル形状のデータは使い回して、別々の場所に描画するということをやってみます。これはインスタンシングの中でもハードウェアインスタンシングと呼ばれていて、古くはDirectX 9.... 2014.01.12 OpenGLプログラミング
DirectX Draw Indirect 系を調べてみた (OpenGL vs DirectX) OpenGL では Draw Indirect 系が充実しているとの情報があったので、DirectXとどのように違うのかを調べてみました。 DirectX 11 では、 DrawInstancedIndirect(), DrawIndexedInstancedIndirect() の2つの関数が DrawIndirect系として使用可能です。DirectX1... 2014.01.09 DirectXOpenGLプログラミング
OpenGL OpenGL DrawIndirect を試してみた OpenGLの拡張名では GL_ARB_draw_indirect となる DrawIndirect の機能を試してみました。これはVRAM上のバッファに描画用データを格納して、その情報を元に描画を行う機能となります。通常 glDrawArrays や glDrawElements で描画の際に関数の引数として設定していたデータについて、VRAM上から該当す... 2014.01.07 OpenGL
OpenGL OpenGL 4世代での描画手順 その3 今回はテクスチャを張ってみたいと思います。また単に画面に三角形ではなく、立方体を出してみます。そのために今回は GLM というライブラリを使用することにしました。これは行列演算のために使用しています。 2014.01.05 OpenGL
OpenGL OpenGL 4世代での描画手順 その2 前回はとりあえず三角形が出せるまで、だったので今回はもう少し進めてみたいと思います。DirectX11ではシェーダー定数については定数バッファ(ConstantBuffer)というものを使って、パラメータをCPUからGPU(シェーダー)に送ります。これのOpenGL版は Uniform Buffer Object (UBO)というものに該当します。 Unif... 2014.01.03 OpenGLプログラミング
OpenGL OpenGL 4世代での描画手順 その1 OpenGL も現在は 4.4 までバージョンが上がりました。自分が知っているのは 3.3 の頃までで、そのときですらジオメトリシェーダーを扱うプログラムに関して調べた程度でした。最近のものでは DirectX 11との対抗もあってか、ずいぶんと機能が増えて、また、描画の方法も従来とは変わってきたので、改めて勉強をしてみます。 2014.01.02 OpenGL