プログラミング等をながらデイトレをしてるのが
正しいかもしれない
(1)The OpenGL Samples Pack
(2)A guide to using modern OpenGL functions
等を参考にして
OpenGL 4.5でパーティクルの何かを作成中
mp4の動画にして、gifに変換して張り付けてみた
(AVIUtil, AviToGifを使用)
Vulkanはめんどくさいので使用してない
UE4は重いので使用してない
OpenGL ESでアプリを作ってた時より
大量のパーティクルが出せてる
DSA (Direct State Access)は便利だな
Vulkan でも似たような事をやってみる
(2)のFaster Reads and Writes with Persistent Mappingにある
glMapNamedBufferRange で取得したポインタをメンバ変数に格納
ドローコール前に 生存中のパーティクルデータをセット
glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, CurrentParticleNum);
で描画
パーティクルの4頂点のローカル座標は頂点シェーダー内にあるのを使用
void main()
{
const vec2 positions[4] = {
{ -0.5, -0.5 }, // LeftBottom
{ 0.5, -0.5 }, // RightBottom
{ -0.5, 0.5 }, // LeftTop
{ 0.5, 0.5 } // RightTop
};
vec2 posL;
posL.x = positions[gl_VertexID].x;
posL.y = positions[gl_VertexID].y;
...
}
GPUが少し古いので、買い替える?