OpenGLスレ Part12
..
2:デフォルトの名無しさん
08/09/12 19:31:56
- 関連スレ -
OpenGL 2.0 専用スレ
スレリンク(tech板)l50
くだすれOpenGL(超初心者用)
スレリンク(tech板)l50
- 各社のOpenGL拡張対応状況-
nVidia
URLリンク(developer.nvidia.com)
ATI
URLリンク(mirror.ati.com)
- その他もろもろリンク集 -
URLリンク(www.nbrains.net)
3:デフォルトの名無しさん
08/09/12 19:33:12
- 補助ライブラリ -
■OpenGLコーディングの補助
・glew URLリンク(glew.sourceforge.net)
OpenGL拡張の利用を簡便に。
■数値演算ライブラリ
・CwMtx library URLリンク(www.xs4all.nl)
行列、ベクトル、クォータニオンの演算ライブラリ。LGPL。
・Matrix, vector and quaternion library 2.0 URLリンク(www.programmersheaven.com)
配布ページの記述によれば無償で使えるらしい。ライセンスは未確認。
C++のメタテンプレート技法を多用しているので高速。APIとしての形も非常にシンプル。
・MathGL++ URLリンク(sourceforge.net)
行列、ベクトル、クォータニオンなどの各種演算用ライブラリ。APIはOpenGLライク。LGPL。
■マルチプラットフォーム化・イベントやサウンドなどのハンドリング
・SDL URLリンク(www.libsdl.org)
定番。数多くの関連ライブラリが開発されている。現在のバージョンでは描画とイベントハンドリングを分離できないため、
描画がもたつくとイベント処理ももたつく。ライセンスはLGPL。
・Allegro URLリンク(www.talula.demon.co.uk)
サポートしている機能、対応OSともにSDLに似ている。日本語資料は少ないが、Gift-wareという位の寛大なライセンスが魅力。
・GLFW URLリンク(glfw.sourceforge.net)
キーボード、マウス、ジョイスティックなどのイベント処理、タイマ、マルチスレッド辺りのみをシンプルに抑えたマルチプラットフォームライブラリ。
サウンドやその他は他のライブラリと組み合わせたい場合は、こちらの方が競合などの問題が無く安心か。
・Java+jogl URLリンク(jogl.dev.java.net)
OpenGLのJavaバインディング。現在のSun JavaVMがC++に肉薄した演算パフォーマンスを発揮している今、
Javaの豊富な標準ライブラリやSwing・Java2Dと連携できる事も考えると、今後はダークホース的選択肢に?
4:デフォルトの名無しさん
08/09/12 19:34:54
■サウンド
・OpenAL URLリンク(www.openal.org)
3Dサウンドライブラリ。マルチプラットフォーム。DirectXゲームでもサウンドはこれを使っているものも。MacOSXでは標準で入っている。
■その他
・OpenSceneGraph URLリンク(www.openscenegraph.org)
シーングラフライブラリ。
・freetype URLリンク(www.freetype.org)
ビットマップフォントやベクタフォントのレンダリングを行うライブラリ。
■フォント描画
・FTGL URLリンク(homepages.paradise.net.nz)
Freetypeを利用したもの。マルチプラットフォーム。アウトラインフォント対応。日本語が使えるかは未確認。
■物理エンジン
・ODE:Open Dynamics Engine URLリンク(ode.org)
オープンソース物理エンジン(GPL or BSD-Style License)
5:デフォルトの名無しさん
08/09/12 19:38:40
URLリンク(wisdom.sakura.ne.jp)
このサンプルコピペして実行してみたんですけど
ポリゴン部分が真っ白になるんです
他に何か設定必要なんですか?
6:ahonoko
08/09/12 20:34:33
またまた質問です。
OpenGLとOpenCVのメリットやデメリットを教えて下さい。
OpenCVは、
・画像処理のAPIがすぐに使える。
・OpenGLと同様、直線を引いたりすることが出来る。
といった感じですよね。
OpenGLがOpenCVに比べて良い点とは何でしょう?
どちらを使用して、開発をするか検討中です。
よろしくお願いします。
7:デフォルトの名無しさん
08/09/12 20:43:17
OpenCVは2D画像処理
OpenGLは3D
だろ
何開発するつもりなんだよ
8:ahonoko
08/09/12 20:52:03
>>7
なるほど。
デバッグやアルゴリズムの確認・評価にOpenCVを使用することにし、
当初の予定通り、OpenGLで開発を進めていくことに致します。
ありがとうございます。
9:デフォルトの名無しさん
08/09/12 23:40:39
>>5
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
を追加したら上手くいくかも
10:デフォルトの名無しさん
08/09/13 18:01:41
OpenGLを使って簡単なお絵かきプログラムを組んだのですが
マウスのポジションをコールバックする回数が少なすぎて
マウスを速く動かすと線がカクカクしてしまいます.
MotionFuncを呼ぶ回数が多くなる方法を知っている方いらっしゃいますか?
もしくはC++とOpenGLの限界なんでしょうか?
11:デフォルトの名無しさん
08/09/13 18:25:12
>>10
得られた点列を曲線にするなどして入力を補間したらいいかと。
それで満足できなかったらWin32APIとかOSのAPIを直接叩けばいいと思うよ。
12:デフォルトの名無しさん
08/09/13 19:21:42
ポイントスプライトは頂点がひとつしかありませんから
そのものを回転することはできませんよね…?
13:デフォルトの名無しさん
08/09/13 19:49:14
そうですね
14:デフォルトの名無しさん
08/09/15 05:43:11
OpenGLにてWin32APIの UpdateLayeredWindow(); 用の32bitのアルファ付き画像をレンダリングしたいのですが、
どうするのが簡単な方法でしょうか?
・BitmapのHDCにレンダリング(アルファ取れる?)
・glReadPixels
うーん
15:デフォルトの名無しさん
08/09/15 09:09:30
>>14
普通にglTexImage2Dでテクスチャを作ればいいと思うけど、それじゃ何か問題があるの?
16:デフォルトの名無しさん
08/09/15 09:56:23
OpenGL ESでColorDepthを32bitにするにはどうすれば良いのでしょうか?
17:デフォルトの名無しさん
08/09/15 10:07:38
>>15
いや、GLでレンダリングした結果をWin32の半透明ウィンドウとして
使いたいという意味では?
>>14
その2つでは、glReadPixelでDIBに取得してBitBltのほうが適当かと、
32bits DIBに描画してBitBltは、MSのソフトウェア実装でGL描画が実行される
可能性が高いような。
GPUのピクセルフォーマットのサポート状況にもよるけど、PbufferSurfaceを作り、
そのHDCを使ってUpdateLayeredWindowもできるのかな?
18:デフォルトの名無しさん
08/09/15 10:35:41
>>16
eglChooseConfigでEGL_BUFFER_SIZEに32を指定。
失敗した場合、その環境では32bitsのカラーバッファはサポートされていないことに
19:デフォルトの名無しさん
08/09/15 22:38:46
人が作ったOpenGLアプリケーションをフックして画像を取得したいんですが、
glFlushをフックすればいいんでしょうか?
glFlush
↓
glFlush
glReadPixels
画像を保存とかする
20:デフォルトの名無しさん
08/09/15 23:59:36
つ GLIntercept
21:デフォルトの名無しさん
08/09/16 13:23:02
行列スタックについて質問です。
glPushMatrix と glPopMatrix は便利なのですが、
・大きさを三倍にし30度傾けたモデルを、複数の場所に移動させて描画したい
という場合に行列の乗算の順番の問題からうまくできません。
glTranslatef
glRotatef
glScalef
draw
という順番に処理を行う(と思う)のですが…。これだとうまくglPushMatrixを活用できません
これが仮に逆だったら(乗算の前後関係が逆だったら)
glScalef
glRotatef
glPushMatrix
glTranslatef
draw
glPopMatrix
glPushMatrix
glTranslatef
draw
glPopMatrix
このように、非常に手軽だと思います。
何かこの手のやりようが他にあるのでしょうか?
22:デフォルトの名無しさん
08/09/16 13:37:45
1. 描写する前にモデルを三倍にして30度傾けておく
1.1 CPUで
1.2 Transform Feedbackで
2. GLSLでなんとかする
2.1 三倍と30度をuniform変数に
2.2 せっかくなのでGeometry Instancingで
23:デフォルトの名無しさん
08/09/16 13:45:33
>>22
1はモデルデータを書き換えてしまうわけですね。ちょっとこれだと、傾けたい角度が動的に変化する場合に負荷がきつそうですね
2はシェーダですね。(iPhoneでのOpneGL活用をやっているのですが)iPhoneにシェーダが使えたか確認してみます。
意外と行列操作そのものの機能が乏しいのでしょうか。
Direct3DにあるD3DXMATRIXのようなものも見当たりませんし、glTranslatefなどを使わず行列そのものを適用する方法も見つかりませんでした
glSetMatrix(float *matrix);
みたいなものがあれば、行列系は全部自前でやってしまうのですが・・・
24:デフォルトの名無しさん
08/09/16 14:16:37
つglLoadMatrix*()
25:デフォルトの名無しさん
08/09/16 14:49:44
>>9
いけました。
ありがとうございます^^
26:デフォルトの名無しさん
08/09/16 15:03:10
>>24
!!
あとは自前で行列クラスを作れば良いですね。
ありがとうございました。
glRotatefなどの行列乗算が適用順番と逆順なのは、カメラ座標への変換(最後に行うべき変換)を最初に宣言させたいからですかね。
というか、適用昇順と逆順は結構使い分けたい場合が多いので、glTranslatefに2種欲しかったですね・・・
27:デフォルトの名無しさん
08/09/16 20:01:46
>>23
> 傾けたい角度が動的に変化する場合に負荷がきつそうですね
ちょっと考えればそれは一概には言えないことに気づくはず。
28:デフォルトの名無しさん
08/09/17 00:42:48
4ByteでGL_RGBA指定でテクスチャーを作っているのですが、
描画してもアルファの部分が抜かれません。
何か設定がいるのでしょうか?
29:デフォルトの名無しさん
08/09/17 01:22:29
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
とかちゃんとやってるだろうか
30:デフォルトの名無しさん
08/09/17 01:34:27
やってませんでした><
31:デフォルトの名無しさん
08/09/18 23:10:57
一応これ置いときますね
32:デフォルトの名無しさん
08/09/18 23:11:55
書き込んじまったorz
つ GL_ALPHA_TEST
33:デフォルトの名無しさん
08/09/19 07:08:43
vbogl.tlbのedxさんめちゃくちゃいい人だ。メールしたら速攻返事きたw
34:14
08/09/20 09:24:51
>>15-17
レス遅くなりました
やっぱり、glReadPixelになるのかあ。
画面に表示せずにでもバッファから取得できるものなのだろうか・・・
試してみたいと思います。
35:14
08/09/20 09:27:26
x やっぱり、glReadPixelになるのかあ。
o やっぱり、ハードウェアきかせるには glReadPixelになるのかあ。
開発環境のマシンがドライバが古いせいでか、
glReadPixelがメッチャ遅いんですよね
ドライバ新しくしたら、WMPとかが真っ黒になったりするので、
古いのバージョンのドライバを使ってたりします。
Geforce6600だったと思うけど、ビデオカード買い換えるか・・・orz
36:デフォルトの名無しさん
08/09/20 11:53:44
glReadPixelsが重いのは大抵のハードウェアで共通。
GF6600ならPBOなりFBOなり使え。
でもpbufferは勘弁な。
37:デフォルトの名無しさん
08/09/20 13:53:09
URLリンク(www.sgi.com)
38:デフォルトの名無しさん
08/09/20 22:59:59
OpenGLでスキンメッシュボーンアニメーションを実装しているのですが、クォータニオンから回転行列への変換って一意じゃないのでしょうか?
一部のアニメーションフレームでボーンが360度一瞬クルッと回ってしまうというバグに困ってます。
39:デフォルトの名無しさん
08/09/20 23:35:00
そのおかしなアニメーションの時のクォータニオンと変換した行列を調べて何がいけないのか原因をつきとめればいい
バグに困ったらデバッグしよう
40:デフォルトの名無しさん
08/09/21 00:34:51
>>39
やっぱり地道なデバッグですよね。
デバッグしてたら少し原因が分かりかけてきました。
問題のフレームでクォータニオンの大きさが限りなく0に近くなっているようです。
自分の実装の仕方が悪いみたいです。ありがとうございました。
41:デフォルトの名無しさん
08/09/21 21:30:20
重なる向きで正しい結果が出る実装は
Gemsに載ってる。
それでも反対向きの場合はダメだったはず
だけど、現実的にはあり得ないからOK
というやつだった。
42:デフォルトの名無しさん
08/09/25 02:20:49
質問です
glDrawPixelsで背景を描いて
GL_BLENDをなど有効にしてglBeginなどでポリゴンを描いても
ポリゴン同士はアルファが効いてるんですが
背景がポリゴンから透けてないんです
他に設定がいるんでしょうか?
43:デフォルトの名無しさん
08/09/25 03:22:02
解像度指定(640x480等)のフルスクリーンにするにはどうすればいいでしょうか?
44:デフォルトの名無しさん
08/09/25 12:00:43
>>43
お前の環境がわからんので、とりあえずこれでも挙げとく
URLリンク(developer.apple.com)
45:デフォルトの名無しさん
08/09/26 13:50:21
glutGameModeString
46:デフォルトの名無しさん
08/09/26 14:25:55
>>43
俺は、DirectDrawでやってるけど、
何故か一部のマシン(ノートPC)環境で画面が真っ黒になるという現象が
発生しているんだよなあ。
Windowモード→OpenGL初期化→表示、実行→フルスクリーンに切り替え→まっくら
→Windowモードにもどす→また表示される
なんとかしたいんだけどもねえ。
フルスクリーンになってから、最初期化しないといけないのかも
DirectXみたいにサーフェスロストとかってしないよな?OpenGLは。
そもそもWindowモードに戻したらまた表示されるのがわからんな。
47:デフォルトの名無しさん
08/09/28 05:20:27
シェーダー系の処理について質問です
よくテクスチャにシーンをレンダリングして、
それにシェーダーでエフェクト処理をかけて画面に表示してるとかありますが、
テクスチャなどは2のn乗サイズがメジャーですが(512x512とか)
画面は4:3とかがメジャーだと思います(640:480とか)
そこで、
・縦横比が合わない出力バッファで、どう言う処理概念で出力しているのでしょうか?
・テクスチャと言う事は、最終的な処理は、画面全体に2Dポリゴン+レンダリングテクスチャ、とかになるのでしょうか?
48:デフォルトの名無しさん
08/09/28 12:29:37
2のn乗サイズにならないテクスチャは
* OpenGL2.0以降かGL_ARB_texture_non_power_of_twoがあれば問題なく使える
* GL_ARB_texture_rectangleとかを使う
* でかい2のn乗サイズのテクスチャの一部だけ使う
のどれか
あと最終的には全画面を覆うポリゴンにシェーダなりでテクスチャにフィルタかけながら描画になるね
49:デフォルトの名無しさん
08/09/29 19:29:56
誰か頼む・・・
OpenGLをHP-UXにインストールするにはどうすればいいか、
教えてくれ・・・
Solarisへのインストーラは直ぐに見つかったんだが、
HPのがどうしても見つからん
50:デフォルトの名無しさん
08/09/29 21:28:11
HPにOpenGL使いたいがどうすればいいかと聞く方がよさそうな。
51:デフォルトの名無しさん
08/09/29 23:12:35
OpenGLを用いてシミュレーションをしたいんですが,
バイナリ形式で書かれたSTLという拡張子のファイルを読み込むライブラリないし
データ形式に関して解説されている資料はありませんでしょうか?
52:デフォルトの名無しさん
08/09/30 01:52:01
>>51
拡張子でぐぐれば拡張子辞典が出てくる。
STLを調べればStereoLithographyが見つかる。
あとは"StereoLithography file format"とかでぐぐる。
って、おい!
質問するから普通に検索しても見つかないのかと思ったら
stl file formatでヒットするじゃねーか。だいじょぶかw
まさか日本語じゃなきゃ分からないとか言わないよねw
53:デフォルトの名無しさん
08/09/30 20:00:52
スプライト(矩形)表示したいんですけど、
座標を(-1.0,-1.0) - ( 1.0, 1.0) とかでなく、
ドット指定 (0,0) - (640,480) ってできないんですか?
54:デフォルトの名無しさん
08/09/30 21:43:01
gluOrtho2Dとかでお好みの座標系を設定すればいいと思うよ
55:デフォルトの名無しさん
08/10/01 00:02:37
GL_TEXTURE_MAG_FILTERで設定できるのはLINEARとNEARESTがあると思うのですが,
独自に(LINEARやNEARESTじゃないものを自分で定義)拡大時の補間方法を定義できないでしょうか。
56:デフォルトの名無しさん
08/10/01 00:21:59
ピクセルシェーダで必要な数だけサンプリングして適当に混ぜ合わせればできる
t-pot バイラテラルフィルタでぐぐると具体例が
57:デフォルトの名無しさん
08/10/01 09:56:50
>>53
俺はこんな感じでやってる
glMatrixMode(GL_PROJECTION);
glPushMatrix;
glLoadIdentity;
glOrtho(0, ScreenWidth, ScreenHeight, 0, -10000, 10000);
glMatrixMode(GL_MODELVIEW);
glPushMatrix;
glLoadIdentity;
58:デフォルトの名無しさん
08/10/04 18:18:46
今更だけど動作検証用にvista導入して最新ドライバで
自作プログラムを動かしてみたら予想より良く動いて驚いた
ちなみにアプリはsm2.0世代ターゲット(ARBアセンブラシェーダ)、
グラボはゲフォ9600GTでD3D9の95%程度のFPSが出てた
ラデは知らん
59:デフォルトの名無しさん
08/10/04 18:24:20
計算間違ってた、大体90%程度ね
60:デフォルトの名無しさん
08/10/05 20:12:06
URLリンク(www.4gamer.net)
カーマックに倣ってレンダリングスレッドを独立させてみたけど
苦労した割りにCPUファンがやかましくなっただけで別段早くならんかった
まあもともと1コアすら使い切ってなかったから当たり前なんだろうけど
61:デフォルトの名無しさん
08/10/07 10:33:29
どなたかプログラミングの宿題
3〜4題(大学1年生レベル)のアルバイト
日当8千円くらいでやってくれる方いませんか?
62:デフォルトの名無しさん
08/10/07 11:22:20
いません
63:デフォルトの名無しさん
08/10/07 11:37:52
金出すなら学校のツテで探したほうが早いだろ
64:デフォルトの名無しさん
08/10/07 12:24:55
>>60
計算スレッドとレンダリングスレッドを分けるのがナウい
一度やって懲りたけど
65:デフォルトの名無しさん
08/10/07 12:41:58
描画するだけならともかく、ゲームになると結構いろんなところでCPUは食うから
分散させれるなさそうしたほうがいいんじゃ。ゲームの種類にもよるんだろうが。
まーシングルCPUでは無意味ですがね。
66:デフォルトの名無しさん
08/10/07 12:54:30
>>61
ソースの書き方で大学1年レベルかどうかばれると思うよ
67:デフォルトの名無しさん
08/10/07 13:10:15
>>66
ソースは枠があって、座標軸やらポリゴン構成やらの設定を
する部分だけすげかえるような感じなんです。
あまり詳しくかけないですが、工学系の院にいれらておる
法律家で、畑違いでちょっと困っているんです。
68:デフォルトの名無しさん
08/10/10 11:16:55
VBOを使うときはまず初期化処理の段階でglBufferData()でバッファを確保しますよね
プログラム中でバッファを再び確保しなおしたい時(つまりデータを書き換えて再度送りたい時)
glBufferData()を呼び出して確保しなおしているのですが
この際,元々確保されていたバッファをクリアしなくて良いのでしょうか?
69:デフォルトの名無しさん
08/10/10 23:51:49
バッファをテクスチャに、glBufferDataをglTexImage*に読み替えてみればわかると思うよ。
70:デフォルトの名無しさん
08/10/11 19:46:05
最近OpenGL ESから勉強し始めて、なんとなくOPEN GLそのものは理解しました。
画面の表示をピクセル単位で制御しようとして、
今表示してるものは glReadPixels で取得するとこまでは成功しました。
で画像を弄くったあとに、表示しようと思ったら
OpenGL ESには、glDrawPixelsがなかった…
こういう場合どうするのが一般的なんでしょう。
ピクセルデータの入った配列から毎フレーム、glTexture2D作るんですか?
よろしくお願いします。
71:デフォルトの名無しさん
08/10/11 21:35:47
Texture はあらかじめ作成しておいて、glBindTexture 後、
glTexSubImage2D で該当部を書き換えがおすすめ
72:デフォルトの名無しさん
08/10/11 21:36:47
と、思ったけど、glTexSubImage2D が OpenGL ESにあるかどうかは知らない。
73:デフォルトの名無しさん
08/10/11 22:29:43
>>71
glTexSubImage2D ありました!!
ちょっとこれから実験してみます。
ありがとうございます!!
74:デフォルトの名無しさん
08/10/12 02:40:19
>>71
無事かけるようになりました thx!!です
75:デフォルトの名無しさん
08/10/13 11:08:32
glVertex4についての質問なんですが、4つめの引数のwは他のxyzに対してどのように作用しているのでしょうか?
4次元の同次座標を3次元の空間座標に変換する場合、xyzをwで割ると思うのですが、
glVertex3にwで割ったxyzを入れたときと、glVertex4に同次座標をそのまま入れたときの描画結果が
違うときがあるのですが…
もし、glVertex4がxyzをwで割っているのならば、引数の値が(-1, -1, -2, -2)と(0.5, 0.5, 1, 1)で描画結果が同じに
なるはずですが、全く描画結果が違うので混乱してしまっています orz
76:75
08/10/13 11:39:33
書き忘れてましたが、モデルビュー行列とプロジェクション行列は一応単位行列に
してあります。単位行列になっているのが原因とは思えませんが…
77:デフォルトの名無しさん
08/10/13 13:26:52
>>75
w < 0 は動作保証されない。正の値を使う。
78:75
08/10/13 17:53:10
>>77
ということはw<0の時に正しく描画されたのはたまたまだったということですね。
喉のつっかえがとれてすっきりしました。
ありがとうございます。
79:デフォルトの名無しさん
08/10/15 10:13:24
glutMainLoop()を使わずに自分で作ったfor文の中で、
glutDisplayFunc()で登録した関数呼び出したいんですが可能ですか?
glut使った場合は必ずglutMainLoopを使わないといけないの?
80:デフォルトの名無しさん
08/10/15 11:53:22
つfreeglut
81:デフォルトの名無しさん
08/10/16 03:10:13
みなさん、
The OpenGL
Graphics System:
A Specification
(Version 3.0 - August 11, 2008)
を読まれましたか?
The Deprecation Model
を読むと、
glBegin, glEnd, glVertex, glFrustum, glPopMatrix, glPushMatrix, glTranslate*
glDrawPixels, glNewList, glEndList, 等々
が将来無くなるらしいですよ。
82:デフォルトの名無しさん
08/10/17 22:21:58
シェーダでもOpenGLが自動的に設定してくれていたattribute変数やuniform変数が使えなくなるぞ
83:デフォルトの名無しさん
08/10/17 23:24:49
ある程度真面目に作った場合はどれも使わなくなる機能だから消えるのは仕方ないかもれない
しかし敷居は上がるよな
その辺をフォローするライブラリみたいなのを用意してくれればいいんだが
OpenSceneGraphとかNVSGを使えとか言うのかな
84:デフォルトの名無しさん
08/10/18 00:27:08
誰か固定機能パイプラインの関数と互換性のある関数を(OpenGLのちゃんとした関数で)実装したりしそうだけどな。
glBegin, glEndは実行効率は悪いだろうけどちょっと何かをレンダリングしたいときに
ささっとコードを書けて便利だよね。
85:デフォルトの名無しさん
08/10/18 00:50:56
うわ、マジなのか。
初心者がまず最初に覚える関数じゃん。
敷居があがっちゃうな、確かに。
86:デフォルトの名無しさん
08/10/18 00:55:28
まあ今までglNantoka()だったのがgluNantoka()に変わるだけだろうな
87:デフォルトの名無しさん
08/10/18 08:02:07
えええええ
glBeginとかなくなったら、どうやって描画寸の???
88:デフォルトの名無しさん
08/10/18 08:24:04
glPush・PopMatrix使って、中級者レベルになってきたんじゃね?って
俺はどうすればいいんですか><
89:デフォルトの名無しさん
08/10/18 10:02:31
今でもドライバの中ではそれらの関数とかはvboなりに置き換えてからやっていたりするので、
>>86なだけだろうよ。変換する関数がもっと手前(ユーザー側)に出てくるだけ。
90:デフォルトの名無しさん
08/10/18 10:33:00
URLリンク(www.devklog.net)
Matrix 関連は shader uniforms あたりを使うことになるんですか?
91:デフォルトの名無しさん
08/10/18 16:02:57
アホな質問ですみません
OpenGLに行列の乗算の関数ってありますか?
92:デフォルトの名無しさん
08/10/18 16:07:52
すみません自己解決しました
glMultMatrix() ですね
93:デフォルトの名無しさん
08/10/19 00:07:54
そのうちなくなるけどな
94:デフォルトの名無しさん
08/10/19 12:48:47
>>89
もっと奥(シェーダ、GPU側)に行くんじゃないの
95:デフォルトの名無しさん
08/10/20 01:18:51
ビットマップテクスチャにglColorで色加えることってできますよね(多分)。
glTexEnviを使って、ゴニャゴニャ弄ればいけるとは思うんですが、
組み合わせがよくわからず苦戦中です。
とりあえずアプローチは間違ってないでしょうか?
よろしくお願いします。
96:デフォルトの名無しさん
08/10/20 17:42:39
乗算合成はできるけど加算合成は無理じゃね
97:デフォルトの名無しさん
08/10/20 21:31:17
シェーダ使って足せばいいんじゃね
98:デフォルトの名無しさん
08/10/20 22:23:17
シェーダだけ覚えてしまえば他のいろいろ面倒なことを完全スルーできるから楽だな
GMA950でGLSL使えなくて(´・ω・`)だったけどCg使えばいいしな
99:95
08/10/21 00:45:52
なるほどです。シェーダ勉強しはじめます!!
ありがとうございます!!
100:デフォルトの名無しさん
08/10/22 13:28:40
100get
101:デフォルトの名無しさん
08/10/23 23:58:40
もうゴテゴテした固定機能パイプラインの関数なんて覚えなくていい。
vertex shaderでは値をそのまま通すだけ。
fragment shaderでは法線ベクトルを0〜1の範囲にスケーリングしてfragmentのcolorに設定する。
ただ、これだけでいいんだ。
102:デフォルトの名無しさん
08/10/24 01:17:54
シェーダー使えればどんなに楽か。
使えないパソコンの方が圧倒的に多いだろ。
特にノーパソ。何とかしてくれ。
103:デフォルトの名無しさん
08/10/24 01:21:56
つmacbook
104:デフォルトの名無しさん
08/10/24 02:39:19
つソフトエミュ
105:デフォルトの名無しさん
08/10/24 07:23:23
ARB_fragment_programならノートでも結構使えるよ
アセンブリ直接書くのはつらいからCg使うことになるだろうけど
使えるという程の速度が出ないと言うことなら仕方ないが
106:デフォルトの名無しさん
08/10/25 09:06:58
何年遅れだよって感じだが
フォンシェーディングとシャドウマップで次世代な気分になった
URLリンク(www1.axfc.net)
でも頂点シェーダからテクスチャにアクセスできないんで
仕方なくCPUでスキニングとか全然次世代じゃねぇ('A`)
107:デフォルトの名無しさん
08/10/25 10:07:12
このぐらいのモデルならスキニングでテクスチャにアクセスする必要はないと思うが・・・
骨が指の関節にまで入ってたりでもするのか?
108:デフォルトの名無しさん
08/10/25 17:34:18
いい感じに次世代な気分
でもノーマルマップとHDRが今の次世代(?)標準らしいぜ
スキニングはテクスチャ必要ないと思うけど
バーテックスシェーダのuniform変数の数が足りないなら
足りそうな所まででモデルを分けて描画という面倒な手もある
他には頂点座標の値を1次元テクスチャに書く方法でスキニングをピクセルシェーダでやるとか
まあ今はCPUもコア数余ってたりするから
余程頂点数が多くない限りスキニングはCPUでもいいんじゃないか
別スレッドでやればマルチコア対応で次世代気分だよ
109:デフォルトの名無しさん
08/10/26 00:42:11
VRAMに頂点データ置いておいてGPUだけでボーン変形して
しかもそれをディスプレースメントマッピングしたりとか
表示だけならいいんだろうが当たり判定したい場合はどうするんだろうな
もしかして当たり判定もGPUでやる時代になるのか
110:デフォルトの名無しさん
08/10/26 00:54:44
表示モデルとコリジョンモデルは分けておく
CUDAかなんかで一度実装すればCPU/GPUのどっちでも実行できるって世界が理想だけど
111:デフォルトの名無しさん
08/10/26 09:21:11
> 表示モデルとコリジョンモデルは分けておく
だな
112:デフォルトの名無しさん
08/10/26 14:58:51
めり込んだり貫通したりしても見なかったことにするというわけか
見た目そのままで判定したい場合はやっぱりCPUで頂点処理することになるはずなので
そのうち頂点シェーダは要らない子になるな
113:デフォルトの名無しさん
08/10/26 15:35:31
今のシェーディングはピクセル単位だからそういう意味でも頂点「シェーダ」ではないしな
やるにしても頂点シェーダからジオメトリシェーダはOpenCLとかでの
汎用処理になっていくんじゃないかと思う
114:デフォルトの名無しさん
08/10/26 16:43:37
表示に最適なデータ形式とコリジョンに最適なデータ形式は一致しない
表示とコリジョンのレベルを一致させるにしてもめりこみ対策をするにしても
やっぱり分離しておくほうがいろいろと便利
115:デフォルトの名無しさん
08/10/29 18:46:12
ジョン・カーマックの宇宙船(?),飛行コンテストを制する
URLリンク(www.4gamer.net)
116:デフォルトの名無しさん
08/10/29 18:53:19
シェーダーってのが何なのか簡潔に教えてください><
調べてみたんですが、サンプルから入っていくのでよく分からない。
シェーダーを使うことによって得られる利点ってのは何なんですか?
CPUを使わないでGPUで演算?わけわかからん
117:デフォルトの名無しさん
08/10/29 19:06:02
この連載を最初から順番に読めば分かる
URLリンク(journal.mycom.co.jp)
118:デフォルトの名無しさん
08/10/29 19:08:26
>>117
ありがとう。記事にバーチャ載ってて少しテンション上がった。
119:デフォルトの名無しさん
08/10/29 19:35:49
あまりに正直な感想でちょっと笑ってしまった
でもまぁ大抵そういうところから入っていくんだよね
120:デフォルトの名無しさん
08/10/29 22:18:16
普段は調子こいて「今シェーダーが熱い!」
とかいってるけど本当はよくわかってない俺にちょうどいい記事があるときいて
121:デフォルトの名無しさん
08/10/30 00:11:30
>>115
ようやくかよw
まだあきらめてなかったんだな
122:デフォルトの名無しさん
08/10/30 10:28:30
>>117
すばらしいまとめ。最初は歴史だけだったが、
後半から3Dのシェーダーがらみのパイプラインの詳しい解説。
ちと長いがw
123:デフォルトの名無しさん
08/10/30 10:33:13
>>117
>>116じゃないけど、>>117を一通り読んだ俺にオススメのシェーダー本を教えてください
124:デフォルトの名無しさん
08/10/30 10:49:49
個人的にはシェーダに関してはネットがあれば本を買う必要は全く感じないな
強いて言えば赤本でGLSLの解説が日本語で読める位か
125:デフォルトの名無しさん
08/10/30 12:55:47
red book
126:デフォルトの名無しさん
08/10/31 06:53:08
赤本は最近のだとシェーダーの説明してるの?
スゲーな…
オレンジ本って言うの?
OpenGL Shading Language
英語だし、内容が古いけど、これが一番詳しい気がする
後、More OpenGL Game Programmingは持って無いが気になる
127:デフォルトの名無しさん
08/10/31 09:28:39
>>124-126
ありがとう
本が好きなんですw
過去スレ除いたら同じような質問が出てたので、それも参考にできました。
テンプレに入れといていい気がする。
赤本の英語版がPDFで読める?という情報も過去レスにあったのですが、
見つからない・・・
■書籍
・赤本(OpenGL1.5と2.0を網羅。シェーダーに関しても少し載っている)
Amazon.co.jp: OpenGLプログラミングガイド 原著第5版: OpenGL策定委員会, 松田 晃一: 本
URLリンク(www.amazon.co.jp)
URLリンク(images-jp.amazon.com)
・古い赤本が無料で読める(英語)
URLリンク(www.opengl.org) (1.1)
URLリンク(www.glprogramming.com) (1.1)
・オレンジ本(シェーダー、GLSLに関して。英語。少しふるい)
Amazon.co.jp: Open Gl Shading Language: Marc Olano, Randi J. Rost, John M. Kessenich, Barthold Lichtenbelt: 洋書
URLリンク(www.amazon.co.jp)
URLリンク(images-jp.amazon.com)
・Cgの本(Cgを使ったシェーダー入門本)
Amazon.co.jp: 3D‐CGプログラマーのためのリアルタイムシェーダー 理論と実践―「古典的ライティング・モデル」から「グローバル・イルミネーション」まで (I・O BOOKS): 金谷 一朗: 本
URLリンク(www.amazon.co.jp)
URLリンク(images-jp.amazon.com)
128:デフォルトの名無しさん
08/10/31 09:30:46
> 個人的にはシェーダに関してはネットがあれば本を買う必要は全く感じないな
具体的にはどの辺をよめばいいんでしょうか?
仕様書?
129:デフォルトの名無しさん
08/10/31 21:59:21
OpenGLのプログラミングをこれからはじめようとしている初心者です(・・;)
質問があります。
WindowsVistaに対応しているGLUTは存在しないのでしょうか?
また,GLUTが使えない場合は,Win32を使ってプログラムするのが無難でしょうか?
よろしくお願いします。
130:デフォルトの名無しさん
08/10/31 22:32:38
>>128
おいらはOpenGLで調べたいことがあったら、まずは仕様書読むようにしている。
仕様書読んでもよくわからんかったらググるか、それもでもわからんだらここで聞けばいいんでない。
>>129
まずはお手元のglutがvistaで動くか試す。
それが駄目ならfreeglut使うとかglfw, gluxとか使ってみてはどうだろうか。
Win32apiの勉強もしたいのなら、glut系のラブライブラリを使わずにやればいいけど
結構大変だと思う。
131:デフォルトの名無しさん
08/10/31 23:53:27
おいらはOpenGLで調べたいことがあったら、まずはここで聞くようにしている。
ここで聞いてもよくわからんかったらググるか、それもでもわからんだら仕様書読めばいいんでない。
132:デフォルトの名無しさん
08/10/31 23:58:50
最低の人間ですね
133:デフォルトの名無しさん
08/11/01 00:46:26
>>130
ありがとうございます。m(_ _)m
やはり、公式にvistaまで対応しているglutは、ないんですかね。
windowsXPまで対応しているglutが動くか試してみます。
134:デフォルトの名無しさん
08/11/01 16:32:41
俺はGLUT使ってないけど、SDLとかglfw使ったプログラムもVistaで問題無く動いてるよ
多分GLUTも動くはず
135:デフォルトの名無しさん
08/11/02 03:58:37
赤本のためにglutが書かれる
↓
glutがメンテされなくなったので
openglut, freeglut開始
↓
glut互換なapiでは物足りないのでglfw開始
↓
glut系がほとんどメンテされてないのでglux開始←今ここ
↓
??
136:デフォルトの名無しさん
08/11/02 13:14:30
約2年放置されてんじゃん
URLリンク(www-sop.inria.fr)
・・・と思ったらこっち?Ogreの人らが作ってるのか
URLリンク(code.google.com)
137:デフォルトの名無しさん
08/11/04 00:56:12
OpenGL で Fetch4 使えたんで日記投下・・・と思ったけど日記にもならないほど簡単だった。
単に GLSL で vec4 texture4( sampler2D, vec2 ) を使うだけ。
左下基準で
r g
a b
の順番で4つ読んでくれる。
internalformat は DEPTH かつ FLOAT である必要はなくて、ALPHA4 とか1要素ものはなんでもおkだった。
3850、4850で動作確認。GPUSAによると2xxx以下じゃ動かないらしい。
GL_AMD_texture_texture4のドキュメントが出ないとわからないけど、ひょっとしたら2xxx以下は
DirectXみたいにglTexParameteri辺りで設定するとtexture2Dでいけるようになったりするのかもしれない。
2要素以上の internalformat に無理やり使うと一応テクスチャから読んではくれる。
但し読んでくれるのは1つだけで、テクスチャの内容を xy [ z [ w ] ]、vec4 を rgba であらわすと
・2要素
g = b = x
r = a = y
・3要素
r = y
g = z
b = x
a = 1
・4要素
r = y
g = z
b = x
a = w
ま、意味はないなw
138:デフォルトの名無しさん
08/11/05 12:42:13
GLの色の丸め方について質問です。
浮動小数点値で色を指定してmビット深度のバッファにレンダリングする場合、
その丸め方について定式化された方法はあるのでしょうか。
灰色(L=0.5)を出そうとするとき、8bitバッファでは127/255になるか128/255になるかは決まっているのでしょうか。
URLリンク(www.opengl.org)
2.14.9 Final Color Processing
139:デフォルトの名無しさん
08/11/06 01:24:49
そこを見る限りでは決まってはなさげ
大抵は切り捨てで127/255になりそうな気はするが
どうしても一致させたいなら整数テクスチャとか使った方がいいかもな
140:デフォルトの名無しさん
08/11/06 10:38:59
ありがとうございます。
ATIだけ微妙な動作をしたので、
差を吸収するためにCPU側で整数化することにしました。
141:デフォルトの名無しさん
08/11/06 19:53:57
VBで使ってみようと思ったら滅茶簡単でワロタ
142:デフォルトの名無しさん
08/11/08 00:51:15
glut以外に、glutSolidCubeのような
物体を関数化してくれているライブラリとかありませんか?
143:デフォルトの名無しさん
08/11/08 13:33:54
glDrawPixels() APIを使用して画像データを転送するとき、
次のような画像データを直接送ることができるのでしょうか?
RRRRR....
........................
GGGGG....
........................
BBBBB....
........................
144:デフォルトの名無しさん
08/11/08 18:28:26
画面じゃなく、テクスチャに描画して
保存したいのですが、何かよいサンプルとかありますか?
145:デフォルトの名無しさん
08/11/08 19:35:32
画面じゃないところに描画したりする方法まとめ
・PFD_DRAW_TO_BITMAP
・glReadPixels
・pbuffer拡張
・FBO(Frame Buffer Object)拡張
他にある?
146:デフォルトの名無しさん
08/11/08 20:03:42
PBO
147:デフォルトの名無しさん
08/11/08 21:19:41
・PFD_DRAW_TO_BITMAP
・glReadPixels
・glCopyTex[Sub]Image2D
・pbuffer拡張
・render texture拡張
・FBO(Frame Buffer Object)拡張
・PBO(Pixel Buffer Object)拡張
148:デフォルトの名無しさん
08/11/08 22:24:43
たくさん出てきて涙目
149:デフォルトの名無しさん
08/11/08 22:33:24
決定打はないのかよw
150:デフォルトの名無しさん
08/11/09 00:37:01
決定打ねぇ。
PFD_DRAW_TO_BITMAPはWindowsべったりな上にアクセラレーション効かないし、
glReadPixelsはシステムメモリへの転送でCPU喰うしレンダリングパイプライン止まるし、
glCopyTex[Sub]Image2Dもパイプライン止まるしFBからテクスチャへの転送は大抵変換が必要で遅いし、
pbufferは多少古いIntelオンボも対応してるおかげで使える環境は多いけどコンテキスト切り替えとか不便&コスト高いし、
render textureは単にpbufferからテクスチャにコピーせずに済むだけだし、
FBOは比較的最近の環境を仮定するなら決定打だろうけど未だにノートPCだと使えない場合が多いし、
PBOは単にコピーのお手伝い拡張だし。
まぁ、選ぶならFBOだな。
151:デフォルトの名無しさん
08/11/09 00:52:40
概要サンクス
152:デフォルトの名無しさん
08/11/09 15:58:50
glutで「3Dオブジェクトを2Dとして変形」したいんですが方法あるでしょうか?
たとえばこんな例。
・オブジェクトは空き缶
・まずは空き缶を3Dオブジェクトとして回転量(Rotated)や視点(LookAt)を指定して
見え方を決める。この結果空き缶を真上から見た絵になったとする
・次にこの「真上から見た空き缶の絵」を「2D一枚絵として」
回転・拡大縮小したい
153:デフォルトの名無しさん
08/11/09 16:13:13
描画結果をテクスチャにして描画
154:デフォルトの名無しさん
08/11/09 16:47:21
回転はカメラのロールで、拡縮はglViewportで
155:デフォルトの名無しさん
08/11/09 21:07:19
初心者です。セレクションモードに切り替えると座標系がズレて変になってしまうのですが、
自分の理解が足りなくて変な座標変換を間に挟んでいるのだと思います。
セレクションモードとレンダモードの切り替えにおける内部の動作を流れ図で教えてもらえませんか。
156:デフォルトの名無しさん
08/11/11 12:36:22
>>155
内部動作とかよくしらんけど、関数呼び出し順序は、
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPickMatrix(...);
gluPerspective(...); or glOrtho(...);
とかしとけば、セレクションうまくいくと思うよ。
はずしてたらすまん。
157:名無し
08/11/13 13:51:45
質問がございます。
1辺の長さが10の箱の中に直径がBの球(中心座標:x,y,z)がM個存在するとします。
3次元上で考え、箱の端では周期境界条件を採用しています。
球の中心の座標は箱内でS回の移動を繰り返すとします。
例えば球の中心の座標は次のように変化します。
座標はファイルQにまとめて書いてあるとします。
※(S+1)個のブロックが存在。(スペースで区切り)1個のブロックにM個のxyz座標が存在。
<ファイルQ>
1 2 3
2 3 4
・
・
・
1 3 4
1 9 5
・
・
・
・
・
・
球が箱からはみ出ると周期境界条件によって、はみ出た部分だけ反対側から出てくるとします。
このようなM個の球のS回の移動の様子をOpenGLで表示することは可能でしょうか?
(表示するもの:球、箱)
可能ならばその方法について教えてもらえませんか?
(ファイルQの読み込み方法、球の直径もしくは半径の指定方法、周期境界条件を考慮した球の表示方法など)
ちなみにプログラムの記述言語はできればFortran77を使用したいと考えています。
158:デフォルトの名無しさん
08/11/13 14:38:55
> はみ出た部分だけ反対側から出てくるとします。
この部分だけがGL的に面白い部分なので、
まずはただの球に衝突判定をつけて作ってみなさい。
159:デフォルトの名無しさん
08/11/13 14:50:10
あとOpenGLはCで定義されていたはずだが、
Fortranだとマングリングを合わせればCの関数も呼べたと思う
まあ調べてみて
160:デフォルトの名無しさん
08/11/13 15:20:29
これは凄い。
一見すると親切かつ丁寧な風に見えて、その実は回答の先送り投げっぱなしジャーマン。
宿題丸投げに対するパーフェクトな回答の見本だな。
久しぶりに職人の仕事を見た。
161:デフォルトの名無しさん
08/11/13 21:41:16
危ねぇ…俺もシンセツダナーとか思いそうだった
162:デフォルトの名無しさん
08/11/14 23:38:04
ワロタww
163:デフォルトの名無しさん
08/11/14 23:56:03
3次元ベクトルの正規化をするような関数とかあります?
DXならD3DXVEC3DNORMALIZEとかいうのです
164:デフォルトの名無しさん
08/11/15 01:19:10
ないから自分で書け
165:デフォルトの名無しさん
08/11/15 01:19:16
ないので自分で作ってください
166:デフォルトの名無しさん
08/11/15 01:22:51
質問するより自分で書いた方が早い
167:デフォルトの名無しさん
08/11/15 01:24:13
d3dxのをそのまま使えばいい
168:デフォルトの名無しさん
08/11/15 03:10:09
void DXならD3DXVEC3DNORMALIZEとかいうのです( vector3* vec )
{
float scalar = sqrt( vec->x * vec->x + vec->y * vec->y + vec->z * vec->z );
if( scalar == 0.0 ) return;
vec->x /= scalar;
vec->y /= scalar;
vec->z /= scalar;
}
169:デフォルトの名無しさん
08/11/15 08:46:24
OpenGL使うのにD3DX使うのもなあ
まあ、俺も音鳴らすのにDirectSoundとか使ってるがw
マジレスすると、言語用に大抵、geometry関係のライブラリがフリーのがあるから
それを探してみたらどうかな?
170:デフォルトの名無しさん
08/11/15 12:46:07
探すくらいなら自分で作ったほうがいいと思う派だが、あえて探すなら
信頼性の高い高速なgeometry関係のフリーのライブラリ = D3DX
171:デフォルトの名無しさん
08/11/15 13:02:48
GLM(OpenGL Mathematics)とかいいんじゃない?
172:デフォルトの名無しさん
08/11/15 13:11:51
NASMで実装します
173:172
08/11/15 17:30:06
1677万回呼んでも差は0.7秒程度でした
確かに大体3分の1程度にはなりましたけど
骨折りですね
global fun
section .text
fun:
mov eax, [esp+4]
mov ebx, [esp+8]
movups xmm0, [ebx]
movaps xmm2, xmm0
mulps xmm0, xmm0
movaps xmm1, xmm0
shufps xmm0, xmm1, 0x4e
addps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm1, 0x11
addps xmm0, xmm1
rsqrtps xmm0, xmm0
mulps xmm2, xmm0
movups [eax], xmm2
ret
174:デフォルトの名無しさん
08/11/15 18:13:02
SSE化で1/3縮んだのなら成功の部類じゃないか
そのコードだとむしろ遅くなりそうなものだけど・・・
175:デフォルトの名無しさん
08/11/15 18:40:20
>そのコードだとむしろ遅くなりそうなものだけど・・・
そうなんすか?
とりあえず改良できると所あれば指摘してくださいな
176:デフォルトの名無しさん
08/11/15 18:54:28
データのアラインメントを変えてmovupsを消す(可能なら4要素にする)
intrinsic関数で組んでインライン展開できるようにする
ループごと取り込んで関数呼び出しを消す
新しいSSE命令を使う(haddps/dpps)
特に関数呼び出しを消すのが重要。
177:デフォルトの名無しさん
08/11/15 19:49:49
>>176
解答ありがとうございます
イントリンシック!そういうのもあるんですな
慣れないアセンブリより楽かも…
SSE3命令はCPUが対応してないから試せそうにありません
オンボロCPU乙ですねハハハ
178:デフォルトの名無しさん
08/11/16 16:21:32
すごく初歩的な質問と思われるかもしれませんが
行列スタックでレンダリングしたものを
どのようにしたら色をつけることができますか?
glClearでは線に色が付くだけなってしまいます
179:デフォルトの名無しさん
08/11/16 16:46:53
日本語でおk
glClearは画面消去だぞ
glClearじゃなくてglColor4fとかでは?
180:デフォルトの名無しさん
08/11/16 17:36:47
>>179
うはぁ、ミスった
glClearじゃなくてglColor3fでした
181:デフォルトの名無しさん
08/11/16 18:14:33
質問の意味がまったくわからないので勝手に妄想
色がついていないのではなく、表示されていないのだろう
PROJECTIONマトリックスが不適切で線に見える部分意外はクリッピングされているのでは
near/farの設定、MODELVIEWとのへの切り替え部分のチェック
182:デフォルトの名無しさん
08/11/16 21:11:52
はじめまして、質問させていただきます。
glGenTexturesでテクスチャを2個作って、
二つのテクスチャを画面に表示しようとしたのですが、
最初に表示したテクスチャが消えてしまいますorz
OpenGLで二つのテクスチャを一度に表示することは可能なのでしょうか?
もしくは、方法を教えていただけないでしょうか。
183:デフォルトの名無しさん
08/11/16 21:12:21
基本立体を塗りつぶしたいんです
本やサイト読んでもイマイチ分からなくて
日本語下手ですみません
184:デフォルトの名無しさん
08/11/16 21:26:25
>>182
glBindTextureの第二引数
185:デフォルトの名無しさん
08/11/16 21:34:43
>>183
glColor
まずはlightingをしないで射影変換の正しさを確認して、光源を作るならそのあと
186:デフォルトの名無しさん
08/11/16 22:05:11
>>184
ありがとうございます。
一応、glBindTextureの第2引数に別々のテクスチャ名を与えてるのですが、
それでも消えてしまいますorz
どうやら表示するときに消えてるのではなく、
2個目をBindしたときに消えてしまってるみたいです。
(glBindTextureを呼ぶだけで1個目のテクスチャが消えました)
187:デフォルトの名無しさん
08/11/16 23:14:22
>>186
カプセル化してかなり忘れてたが、見直してみたら
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, ...);
glBegin(...);
glEnd();
glDisable(GL_TEXTURE_2D);
を逐一繰り返す構造になってた
glPushAttrib, glPopAttrib のテクスチャ関係も参考に
もし関数化してたら、一度関数化してないmainのみのストレートフォワードなテストコードを書くといいかも
カプセル化しない状態で人力コーディングするとスタックの積み下ろしを忘れてることがよくあるから
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4930日前に更新/199 KB
担当:undef