mieki256's diary



2024/05/21(火) [n年前の日記]

#1 [prog] Intel GMA 950で利用できるテクスチャの最大サイズを知りたい

ネットブック Lenovo IdeaPad S10-2 の電源を久々に入れたので、せっかくの機会だからと、以前作った OpenGL のプログラムが動くかどうか調べてみた。

_mieki256/ssp3droadgl

環境は以下。

ビルド手順 :

ビルドに必要なパッケージは以下だろうか。足りてないパッケージもありそうだけど…。
sudo apt install build-essential git
sudo apt install libglfw3-dev freeglut3-dev libegl1-mesa-dev libgl1-mesa-dri libgles2-mesa-dev libglu1-mesa-dev libglw1-mesa-dev mesa-common-dev mesa-utils mesa-utils-extra

git で clone してビルドする。
git clone https://github.com/mieki256/ssp3droadgl.git
cd ssp3droadgl
cd src
make -f Makefile.glfw clean
make -f Makefile.glfw
./ssp3droadglfw

動作結果 :

./ssp3droadglfw で実行できるけれど、木や車のテクスチャが全然表示されない状態で動いた。背景(遠景)のテクスチャだけは表示されてるけれど…。

使用しているテクスチャ画像のサイズは以下。
  • 木や車のテクスチャは、4096x4096ドット。
  • 背景テクスチャは、2048x1024ドット x 4枚。

もしかして、VRAMが足りなくて、テクスチャをVRAM上に置けなかったのだろうか?

利用できる最大テクスチャサイズについて :

Intel GMA 950が OpenGL で利用できるテクスチャの最大サイズってどのくらいなんだろう。ググってみたら、OpenGL の場合、GL_MAX_TEXTURE_SIZE という値を渡して取得することができるらしい。

_macOSでOpenGLプログラミング(1-10. OpenGLの環境を確認する) #macOS - Qiita
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTextureSize);

確認用のプログラムを書くのが面倒だなと思ったけれど、各社のGPUが返してくる値を一覧にしているページを見かけた。これは助かる…。

_OpenGL capabilities database - index
_OpenGL capabilities report: GL_MAX_TEXTURE_SIZE
_OpenGL capabilities report: Intel GMA 950

Intel GMA 950 の場合、GL_MAX_TEXTURE_SIZE は 2048 を返す模様。ということは、最大で 2048x2048ドットのテクスチャが使えるということだろうか。

前述のデモプログラムは、4096x4096のテクスチャを読み込んでVRAMに置こうとしていたので、2048x2048のテクスチャまでしか使えない Intel GMA 950 ではテクスチャが表示されなかった、ということになるのだろうか…。

逆に考えると、2048x2048のサイズにテクスチャを収めておけば、Intel GMA 950 という、かなり古くて性能が低いGPUでも、OpenGLを使ったプログラムが正常に表示される可能性が高い、ということになるのかな…。

別のプログラムを試した :

別の OpenGLプログラムも試してみた。これはテクスチャを一切使っていない。

_mieki256/ssisoroadgl

git clone https://github.com/mieki256/ssisoroadgl.git
cd ssisoroadgl
cd src
make -f Makefile.glfw clean
make -f Makefile.glfw
./ssisoroadglfw

こちらは動いてくれた。ただ、道路の白線がやたらとチラチラしている。z depth?が足りないのだろうか? 道路だけでもテクスチャを使うべきだったかな…。

でもまあ、今時ネットブックで OpenGL を使ったプログラムを動かしてどうこうしたいという事例はほとんどないだろうから、このままでもいいかな…。

もっとも、もし対応させるなら、2048x2048のサイズのテクスチャを作成しておいて…。GL_MAX_TEXTURE_SIZE で値を取得して、4096x4096のテクスチャが使えないと分かったら、画質は悪くなるけれど1/4サイズの2048x2048のテクスチャを利用して対応させる感じになるだろうか。テクスチャのUV値等を調整する必要も出てくるかな…と思ったが、OpenGLの場合 0.0 - 1.0 でUV値を指定してるはずだから、そこは変えなくても良さそう。たぶん。

以上です。

過去ログ表示

Prev - 2024/05 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project