OpenGLスレ Part19
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2012/11/27(火) 22:56:00.79現在の最新バージョンは4.3
http://www.opengl.org/
http://www.opengl.org/wiki/Main_Page
== OpenGLと一緒に使われるツール&ライブラリ ==
苦労したくなかったらとりあえず入れとけ。
・glx: XからOpenGLを使うためのライブラリ。普通は直接は使わず意識する事はない
・glut: クロスプラットフォームなツールキット。でもさすがに古くさい
・GLFW より新しいマルチプラットフォームなツールキット
・glew: これを入れないと拡張機能が使えないor使いにくい
・glxgears: 歯車が回るベンチマーク。-infoでOpenGLのバージョンが見られる。OpenGLの動作確認はこれで
・glxinfo: 自分の使っているカードのOpenGLの機能が全てリストアップされる。
・OpenTK C#からOpenGLを簡単に使えるようになる。VC#の強力なIntellisenseとあわせてサクサク開発可能。
・OpenSceneGraph: OpenGL を高度に抽象化し、利便性を高めたラッパー。C++ ライブラリ
・OpenGL Mathematics (GLM): GLSL 文法ライクの C++ 数学ライブラリ
== チュートリアルサイト ==
床井研究室: http://marina.sys.wakayama-u.ac.jp/~tokoi/oglarticles.html
OpenGL de プログラミング: http://wiki.livedoor.jp/mikk_ni3_92/
NeHe: http://nehe.gamedev.net/
Tutorials for OpenGL 3.3 and later http://www.opengl-tutorial.org/
Learning Modern 3D Graphics Programming http://www.arcsynthesis.org/gltut/
== 前スレ ==
OpenGLスレ Part18
http://toro.2ch.net/test/read.cgi/tech/1334374186/
0002デフォルトの名無しさん
2012/11/27(火) 22:56:30.42-- CG入門 --
OpenGL以前の普遍的なCGの概念。
CG-ARTS協会の3冊は初心者向け。あとの2冊は上級者向け。
・コンピュータグラフィックス (CG-ARTS協会)
・ビジュアル情報処理 (CG-ARTS協会)
・ディジタル映像表現 (CG-ARTS協会)
・ゲーム制作者になるための3Dグラフィックス技術
・ビジュアルコンピューティング 3次元CGによる画像生成
-- 初心者用 --
・GLUTによるOpenGL入門
・GLUTによるOpenGL入門2 テクスチャマッピング
・OpenGL ES 2.0 プログラミングガイド
-- 上級者用 --
・OpenGL Shading Language (橙本)
・Shader Xシリーズ
・GPU Gemsシリーズ
・GPU Proシリーズ
0003デフォルトの名無しさん
2012/11/27(火) 22:57:14.49-- モダンなOpenGL --
シェーダーベースの最新のOpenGLの学習
・OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング
・OpenGL SuperBible: Comprehensive Tutorial and Reference
・OpenGL 4.0 グラフィックシステム
-- 数学 --
・ゲームプログラミングのための3Dグラフィックス数学
・実例で学ぶゲーム3D数学
・ゲーム開発のための数学・物理学入門
-- 過去の書籍 --
有名だが古いバージョンのOpenGLをもとに書かれているためすでに時代遅れ
通常は買う必要はない
・OpenGLプログラミングガイド 原著第5版 (赤本)
・OpenGL Reference Manual (青本)
0004デフォルトの名無しさん
2012/11/27(火) 23:01:43.87OpenGL Step By Step: http://ogldev.atspace.co.uk/
OpenGL Samples Pack: http://ogl-samples.g-truc.net/
0005デフォルトの名無しさん
2012/11/27(火) 23:02:54.12Part18: http://toro.2ch.net/test/read.cgi/tech/1334374186/
Part17: http://toro.2ch.net/test/read.cgi/tech/1321350331/
Part16: http://hibari.2ch.net/test/read.cgi/tech/1309182662/
Part15: http://hibari.2ch.net/test/read.cgi/tech/1289992928/
Part14: http://hibari.2ch.net/test/read.cgi/tech/1263901596/
Part13: http://pc12.2ch.net/test/read.cgi/tech/1247349324/
Part12: http://pc12.2ch.net/test/read.cgi/tech/1221215309/
Part11: http://pc11.2ch.net/test/read.cgi/tech/1177523018/
Part10: http://pc11.2ch.net/test/read.cgi/tech/1141034983/
Part 9: http://pc8.2ch.net/test/read.cgi/tech/1132403929/
Part 8: http://pc8.2ch.net/test/read.cgi/tech/1126267690/
Part 7: http://pc8.2ch.net/test/read.cgi/tech/1118151979/
Part 6: http://pc8.2ch.net/test/read.cgi/tech/1105612993/
Part 5: http://pc5.2ch.net/test/read.cgi/tech/1100085657/
Part 4: http://pc5.2ch.net/test/read.cgi/tech/1091724463/
Part 3: http://pc5.2ch.net/test/read.cgi/tech/1067529308/
Part 2: http://pc2.2ch.net/test/read.cgi/tech/1039984523/
Part 1: http://pc3.2ch.net/tech/kako/981/981044659.html (dat落ち)
0006デフォルトの名無しさん
2012/11/28(水) 06:31:29.870007デフォルトの名無しさん
2012/11/28(水) 17:26:03.79翻訳された4.0の仕様書のglReadPixelsとかglClampColorの項目を何回読んでも理解出来なかったので
ギブアップして公式の4.2の仕様書を読んだら加筆訂正されていてワロタ。すげーわかりやすい
やっぱり原文からして意味不明だったのね・・・
結局全パターンについてテストケースを書いて1つずつ確認して言ったら
あちこち間違えまくっていたので修正したら思った通りの動作だった
あとAMDのGPUだとglColorClampが無視される。
つまり固定小数バッファーの時は必ずクランプされ(まあ当然だ)、
浮動小数バッファーと整数バッファーの時はまったくクランプされない。
(そのままの値が取得できる)
浮動小数バッファーのクランプ設定は使いそうな気がするけど、まあいいや
C#のOpenTKが内部で握りつぶしているのかも
0008デフォルトの名無しさん
2012/11/29(木) 10:31:34.70戻させても内部では8bitで処理されてる?
例えばフラグメントシェーダで単色グラデーションを作ってGL_FLOATで吐き出させても
255段の階段が見えてしまってるんだけど、俺がどこかでミスってる?それともこういうもの?
0009デフォルトの名無しさん
2012/11/29(木) 11:29:51.760010デフォルトの名無しさん
2012/11/29(木) 12:48:35.95んなわけない
それはinternalFormatにRGB8(=固定小数8bit)を指定した時の動作
ちゃんとRGB8fにしてるか?
可能性は低いがGPUが浮動小数バッファーに対応してなくて固定小数バッファーを使った可能性もある
glTexLevelParameterでGL_TEXTURE_INTERNAL_FORMATを指定して実際に確保した内部フォーマットを確認してみるがよろし
0011デフォルトの名無しさん
2012/11/29(木) 13:08:58.88○ RGB16f, RGB32f
ってかGL_FLOATって何だよ。glGetTexImageのformatか?
それはテクスチャーをCPU側にコピーする時の(CPU側の)形式なので、
コピー元のテクスチャーをRGB8で作っていたとしたらそもそも255階調しか存在しない
0012デフォルトの名無しさん
2012/11/29(木) 14:36:30.00仲間と協力してプレーしている感がまったくない
クランもないし・・・
CBだけでお腹いっぱいになってしまった
0013デフォルトの名無しさん
2012/11/29(木) 14:40:26.440014デフォルトの名無しさん
2012/11/29(木) 19:47:27.36レスありがとう
やっぱりそっちが問題だったのね、そっちはどこかの説明で色の数とだけあったから
そこで指定できるのは成分数だけかと思った
確認してきます
0015デフォルトの名無しさん
2012/11/30(金) 07:52:58.27gl3wっていうOpenGLのCore Profileを有効にしてくれるライブラリを試してるんだけど、OSXをサポートしてるってサイトには書いてあるのに、サンプル(test.c)を動かしてみると、最初の初期化(gl3wInit())で失敗する……orz
他の人どう? 暇がある人は試してみて。
0016デフォルトの名無しさん
2012/11/30(金) 21:59:30.36GLFWとかQtとかなら行けるんじゃないか?
あとはmacでOpenGLしてそうな人に聞くとかか
ttp://marina.sys.wakayama-u.ac.jp/~tokoi/?blogcategory=GLFW
0017デフォルトの名無しさん
2012/12/01(土) 05:02:45.24Python起動するみたいだけどスクリプト(gl3w_gen.py)は正しく実行できてるの?
0018デフォルトの名無しさん
2012/12/01(土) 09:34:48.38公式ページによると、標準のGLUTでいけるみたいなことが書いてあるんだけど、
それができずに困ってる。
ちなみにQtでも試してみたけど、ダメでした……。
>>15
gl3w_gen.pyは正しく実行できてる。
というかこれを実行しないとライブラリのCファイルが取得できないので。
0019デフォルトの名無しさん
2012/12/01(土) 17:02:20.830020デフォルトの名無しさん
2012/12/01(土) 17:11:56.680021デフォルトの名無しさん
2012/12/01(土) 17:14:51.850022デフォルトの名無しさん
2012/12/02(日) 00:43:54.38glDrawTexfOESで画像描画するとGPUが動員されて速いそうなので、主にこれで2Dだけで行きたいんですが、座標の原点が左下なので換算が少々面倒です。左上にできませんか?
もう一つ。画面に入る場所のタイルだけ毎フレームglDrawTexfOESするのが普通ですか?マップ済みのを簡単にスクロール・拡大したりできないかと思って
0023デフォルトの名無しさん
2012/12/02(日) 01:06:04.14OSX Mountain Lionで試してみたけど通らない
失敗する原因はglGetIntegervでのバージョン取得が上手くいってないからっぽい
なぜかはよくわからない
0024デフォルトの名無しさん
2012/12/02(日) 01:43:05.64射影変換の後にY軸を反転する変換をすれば良いんじゃね
テクスチャ座標もあわせて変換しとかないといかんな
0025デフォルトの名無しさん
2012/12/03(月) 04:45:22.03試してくれたのね。ありがとう。
なんでなんだろうね。何か動きがあるか、しばらく待った方がいいかな。
0026デフォルトの名無しさん
2012/12/03(月) 23:22:18.240027デフォルトの名無しさん
2012/12/09(日) 08:07:01.16↓ステンシルバッファの内容(左下がウインドウ座標原点)
90 … 99
: :
10 … 19
0 … 9
上のステンシルバッファを読み込もうとしたコード↓
GLubyte sb[10][10];
glPixelStorei(GL_PACK_ALIGNMENT, 1);
glReadPixels(0, 0, 10, 10, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, sb);
結果は、
sb[0][0〜9] == 0
sb[1][0〜9] == 10
sb[2][0〜9] == 20
:
sb[9][0〜9] == 90
となってステンシルバッファの最初の1列しか読み込んでくれません…
sb[y][x] == 10*y+x
となってほしいのですが何か設定が足りないのでしょうか?
002827
2012/12/09(日) 08:24:34.330029デフォルトの名無しさん
2012/12/09(日) 09:46:55.83GL_PACK_ROW_LENGTHで10でやってみたら?
よくわからんけど
003027
2012/12/09(日) 10:14:37.68//glPixelStorei(GL_PACK_ALIGNMENT, 1);
glPixelStorei(GL_PACK_ROW_LENGTH, 10);
でやってみましたが、
配列sbの中での行頭データが4byte境界にズレただけで
相変わらず1行分(10pixel)のデータが全て行頭データになってしまいます。
また、
glReadPixels(1, 0, 10, 10, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, stencil_buffer);
~~~~
としてxをずらしてもなぜか同じ結果です。
0031デフォルトの名無しさん
2012/12/09(日) 10:17:00.88○ GLubyte sb[10*10];
0033デフォルトの名無しさん
2012/12/09(日) 10:46:39.65先頭アドレスが同じなら入ってくるデータは同じだよね
あとでアクセスするときに意味が変わるだけで
0034デフォルトの名無しさん
2012/12/09(日) 12:51:32.04テクスチャを読み込ませ背景に重ね合わせたんですが、
なぜか微細な透過部分がグレー色になってしまいます
そういう仕様なんでしょうか?
0035デフォルトの名無しさん
2012/12/09(日) 13:04:23.550036デフォルトの名無しさん
2012/12/09(日) 13:13:27.960038デフォルトの名無しさん
2012/12/09(日) 14:16:52.79まるで役に立たない書き込みだな
0039デフォルトの名無しさん
2012/12/09(日) 14:29:06.050040デフォルトの名無しさん
2012/12/09(日) 15:04:50.78糞みたいに役に立たない回答ありがとうございました(死ね)
みたいな意味だと思うわw
0041デフォルトの名無しさん
2012/12/10(月) 10:35:29.22まぁでも、>37を書くなら原因くらい書いていって欲しかったがな。
0042デフォルトの名無しさん
2012/12/10(月) 20:28:56.340043デフォルトの名無しさん
2012/12/10(月) 22:15:27.890044デフォルトの名無しさん
2012/12/12(水) 12:21:51.78複数のカラーバッファーのマスクを個別に変更できる必要はありますか?
OpenGLの仕様上個別に制御可能ですが、こんな機能使わないと思うので
一括して変更にしか対応しない仕様にしようと思います
0045デフォルトの名無しさん
2012/12/12(水) 18:25:12.07画面全体の赤成分だけとか緑成分だけとかを反転させたかったときに
カラーマスクをかけて glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO) で塗り潰した
0046デフォルトの名無しさん
2012/12/12(水) 19:28:40.95アルファブレンドしろよ
というか懐かしいな
20年前学生だったとき暇つぶしにやったよ
004744
2012/12/12(水) 19:59:14.05上の書き方だとそう取られてもしょうがない(反省)
複数バッファー(COLOR_ATTACHEMENT0,1,2,3...)をアタッチした時に、
その中の1つのバッファーだけカラーマスクを変えたい事がありますかという質問です。
そういう需要はないと踏44んでいます
004844
2012/12/12(水) 20:05:24.71αブレンドってシェーダー&オフラインレンダリングの時代にはぶっちゃけもう必要ないですよね?
デフォルトのRGBのフレームバッファーに対する基本的な合成がせいぜい6種類ぐらいあれば十分で、
オフラインのRGBAバッファーに対する合成は必要無いですよね?
Aチャネルの扱いとか定義しろと言われても困る
0049デフォルトの名無しさん
2012/12/12(水) 20:38:27.47テスト仕様書漏れまくりだろ存在が人災レベルのクズ
0050デフォルトの名無しさん
2012/12/12(水) 21:24:02.10透明な物体を使わないってことだろ
ありえませんわ
0051デフォルトの名無しさん
2012/12/12(水) 22:05:13.710052デフォルトの名無しさん
2012/12/14(金) 02:59:25.85はい、シェーダーの時代なのでぶっちゃけ全部不透明オブジェクトです
オフラインレンダリングの時代なのでぶっちゃけOpenGLも必要ないです
0053デフォルトの名無しさん
2012/12/15(土) 01:04:45.110054デフォルトの名無しさん
2012/12/15(土) 02:07:18.15できれば Java でやりたいんだけど。
具体的には、平面のフロアマップを、タッチパネルで回転したり、拡大したりするだけ。
0055デフォルトの名無しさん
2012/12/15(土) 02:13:40.570056デフォルトの名無しさん
2012/12/15(土) 02:25:21.73初めて聞きましたわ。なんだか自由度が低そうですわ。
0057デフォルトの名無しさん
2012/12/15(土) 02:28:07.51UI作ったりしなきゃいけないので、そこそこ色々できるのがいいです。ごめんなさい。
0058デフォルトの名無しさん
2012/12/15(土) 02:33:35.190059デフォルトの名無しさん
2012/12/15(土) 02:45:26.72確かにそれは失礼した。明日使ってみる。
内部的にはJavaなのねこれ。
作った後誰かにメンテ託さないといけないので、
なるべくメジャーな言語がいいんだけど、ここまでJavaっぽいならありかもね。
0060デフォルトの名無しさん
2012/12/15(土) 04:51:03.390061デフォルトの名無しさん
2012/12/15(土) 12:50:23.180062デフォルトの名無しさん
2012/12/15(土) 17:48:08.82以下の描画関数displayを用意して、glRotatedでY軸中心にに30度回転させると
四角形がいくらか縦長になるという動作を期待したのですが、
30度回転すると、何故か90度回転している?ようでXY平面には何もプロットされません。
60度回転すると、左と右の色が反転、すなわち180度回転?しているようなのですが
これはどういう解釈をすればいいのでしょうか?
void display(void){
glClear(GL_COLOR_BUFFER_BIT);
glRotated(30.0(任意の角度),0.0,1.0,0.0);
glColor3d(1.0,0.0,0.0);
glBegin(GL_POLYGON);
glColor3d(1.0,0.0,0.0); glVertex2d(-0.9,-0.9);
glColor3d(0.0,1.0,0.0); glVertex2d(0.9,-0.9);
glColor3d(0.0,0.0,1.0); glVertex2d(0.9,0.9);
glColor3d(1.0,1.0,0.0); glVertex2d(-0.9,0.9);
glEnd();
glFlush();
}
0063デフォルトの名無しさん
2012/12/15(土) 17:53:42.210064デフォルトの名無しさん
2012/12/15(土) 17:56:39.70このコードだとdisplay()が呼ばれるたびにY軸中心の回転変換が加えられてしまう
glLoadIdentity()とかを使って行列を毎回初期化してください
話はそれからだ
006562
2012/12/15(土) 18:06:23.80なるほど。
glLoadIdentity()を追加したところ、正常とおもわれる動作で90度回転でXY平面からは見えず
180度回転で反転となりました。
ウィンドウが開くまでに、内部的にdisplay()が三回呼び出されていて回転変換が重なってしまったた。
ということでしょうか。
ご示唆ありがとうございました
0066デフォルトの名無しさん
2012/12/16(日) 00:56:02.05その表示しようとした部分だけ白くなる原因ってサイズを2の累乗にしなきゃいけないってこと
以外にどんなものがあります?
あとアルファ値を有効にして表示するのは
glEnable(GL10.GL_ALPHA_TEST);
を使えばokですか?
0067デフォルトの名無しさん
2012/12/16(日) 01:35:19.58ミップマップなしのテクスチャだとおかしなことになりそうだな
0068デフォルトの名無しさん
2012/12/16(日) 03:03:29.260069デフォルトの名無しさん
2012/12/16(日) 03:19:07.39なんのアルファ値を有効にしたいのか分からないけど、
テクスチャのアルファブレンドとALPHA_TESTは違う
0070デフォルトの名無しさん
2012/12/16(日) 05:04:54.610071デフォルトの名無しさん
2012/12/16(日) 20:38:32.79これが正しい進み方
0072デフォルトの名無しさん
2012/12/16(日) 21:03:08.66代わりにC#を使ったほうが便利だ
0073デフォルトの名無しさん
2012/12/16(日) 21:31:45.980074デフォルトの名無しさん
2012/12/16(日) 21:39:33.170075デフォルトの名無しさん
2012/12/16(日) 23:38:18.210076デフォルトの名無しさん
2012/12/17(月) 00:04:55.91++
0077デフォルトの名無しさん
2012/12/17(月) 00:31:18.840078デフォルトの名無しさん
2012/12/17(月) 01:20:02.09ウンザリして結局C++に戻るんですね、わかります。
0079デフォルトの名無しさん
2012/12/17(月) 01:43:42.220080デフォルトの名無しさん
2012/12/17(月) 08:51:08.21役立たずを勧める意図は何なんだろう?
0081デフォルトの名無しさん
2012/12/17(月) 19:40:57.360082デフォルトの名無しさん
2012/12/17(月) 19:58:49.62C++だとGUI作るのが面倒すぎる
0083デフォルトの名無しさん
2012/12/17(月) 20:08:19.830084デフォルトの名無しさん
2012/12/17(月) 20:53:23.10それなりに楽できるんじゃないかな?
0085デフォルトの名無しさん
2012/12/17(月) 20:59:17.210086デフォルトの名無しさん
2012/12/17(月) 21:23:27.86え?SWIG?
0087デフォルトの名無しさん
2012/12/17(月) 21:25:45.980088デフォルトの名無しさん
2012/12/17(月) 21:27:32.39OS、アプリ、ゲームと、ことごとくC/C++で出来ている。
C#で出来ている物といえば、手抜きっぽい小規模なプログラムばかりだ。
0089デフォルトの名無しさん
2012/12/17(月) 21:31:56.570090デフォルトの名無しさん
2012/12/17(月) 21:36:14.460091デフォルトの名無しさん
2012/12/17(月) 21:37:45.090092デフォルトの名無しさん
2012/12/17(月) 21:38:12.23.NETFRAMEWORKはモッサリで駄目だ
0093デフォルトの名無しさん
2012/12/17(月) 21:43:39.99だからみっともないユーティリティ擬きしか作れないんだよ。
0094デフォルトの名無しさん
2012/12/17(月) 21:49:03.39恥かくのが趣味なら止めないが
ttp://sky.geocities.jp/freakish_osprey/opengl/images/Demo_MQOViewer.png
0095デフォルトの名無しさん
2012/12/17(月) 21:50:32.270096デフォルトの名無しさん
2012/12/17(月) 21:52:41.88標準で提供されているRADツールなど何の役にも立たない。
0097デフォルトの名無しさん
2012/12/17(月) 21:56:38.38なんで今更歩くことなんて覚えなきゃいけないんですか?時代遅れですよね?
っていって足を切り落とされるお前の赤ちゃんがかわいそう
0098デフォルトの名無しさん
2012/12/17(月) 21:57:31.39自作しなければならない部分はあるが、そうでない部分をRADでとても楽させてもらえるのが良いね
0099デフォルトの名無しさん
2012/12/17(月) 21:58:43.570100デフォルトの名無しさん
2012/12/17(月) 22:00:40.130101デフォルトの名無しさん
2012/12/17(月) 22:02:02.230102デフォルトの名無しさん
2012/12/17(月) 22:04:17.02Javaも同様。
0103デフォルトの名無しさん
2012/12/17(月) 22:04:34.86ttp://www.quatouch.com/products/hisui/
Qtなんかはこれより低機能なのでとても売り物になりませんね
0104デフォルトの名無しさん
2012/12/17(月) 22:07:16.450105デフォルトの名無しさん
2012/12/17(月) 22:08:18.77まともな物を作ろうと思ったら他力本願じゃ無理なんだよ。
0106デフォルトの名無しさん
2012/12/17(月) 22:08:29.660107デフォルトの名無しさん
2012/12/17(月) 22:08:58.41自力でやる以外の部分がとても楽になるよ
0108デフォルトの名無しさん
2012/12/17(月) 22:11:37.32そういう選択肢は否定するものではない。
0109デフォルトの名無しさん
2012/12/17(月) 22:15:03.17C#を選ぶだろう。
つまり、そういうことだ。
0110デフォルトの名無しさん
2012/12/17(月) 22:21:44.150111デフォルトの名無しさん
2012/12/17(月) 22:26:55.950112デフォルトの名無しさん
2012/12/17(月) 22:43:58.940113デフォルトの名無しさん
2012/12/17(月) 23:00:07.88C++を選ぶだろう。
0114デフォルトの名無しさん
2012/12/17(月) 23:08:06.870115デフォルトの名無しさん
2012/12/17(月) 23:10:15.110116デフォルトの名無しさん
2012/12/18(火) 00:18:56.70お前OSを日常的に作ってるのか?
比べるなら日常的に作ってるものが如何に効率的に作れるかだろが
0117デフォルトの名無しさん
2012/12/18(火) 00:36:25.65ドライバー作ってますが何か?
0119デフォルトの名無しさん
2012/12/18(火) 01:02:32.340120デフォルトの名無しさん
2012/12/18(火) 03:35:28.54NPO「ReactOSで無料日本語OSを作る会」なんて設立したいと考えています。
0121デフォルトの名無しさん
2012/12/18(火) 08:30:25.310122デフォルトの名無しさん
2012/12/18(火) 09:10:10.35それ、OpenGLじゃなくてよくね?
0123デフォルトの名無しさん
2012/12/18(火) 10:06:21.760124デフォルトの名無しさん
2012/12/18(火) 10:09:43.54SSE2やNEONのインラインアセンブラや組み込み関数が使えない言語は問題外だ。
0125デフォルトの名無しさん
2012/12/18(火) 13:55:05.920126デフォルトの名無しさん
2012/12/18(火) 15:32:12.270127デフォルトの名無しさん
2012/12/18(火) 15:59:45.41拡張命令を利用するメリットが消失する。
必要な部分を逃がしたらスタートアップ部分しか残らないぞ。
0128デフォルトの名無しさん
2012/12/18(火) 16:09:37.880129デフォルトの名無しさん
2012/12/18(火) 19:27:06.15C/C++なら拡張命令を使ったコードをコンパイラが勝手に生成してくれる。
便利な世の中になったものだ。
0130デフォルトの名無しさん
2012/12/18(火) 20:44:30.19プログラムから設定する方法はあるでしょうか。
0131デフォルトの名無しさん
2012/12/18(火) 20:54:37.660132デフォルトの名無しさん
2012/12/18(火) 20:56:10.690133130
2012/12/18(火) 21:19:46.50え?
適当にピクセルフォーマットを設定し、
レンダリングコンテキストを作成して適用すれば、
それで OpenGL の関数が使えてレンダリングできてしまうのですが・・・
0134デフォルトの名無しさん
2012/12/18(火) 21:34:22.93何のために関連づけていると思っているんだ?
今まで意味も分からずにやってたのか?
0135130
2012/12/18(火) 22:44:58.13ごめんなさい、意味がよく分からないです。
wglCreateContext 関数と wglMakeCurrent 関数によって、
HGLRC と HDC が紐付けされるという意味でしょうか?
0136デフォルトの名無しさん
2012/12/18(火) 23:05:25.170137デフォルトの名無しさん
2012/12/18(火) 23:25:13.77WGL_NV_gpu_affinity とか使ったことないから知らん。
0138デフォルトの名無しさん
2012/12/18(火) 23:41:52.16なんでそんなに頭が悪いの?
0139デフォルトの名無しさん
2012/12/18(火) 23:44:53.58ttp://watery.dip.jp/slash/archives/1062
0140デフォルトの名無しさん
2012/12/19(水) 00:22:15.46意味を理解して使わないってどんな気分なんだろうか
0141デフォルトの名無しさん
2012/12/19(水) 03:58:35.990142130
2012/12/19(水) 07:10:48.61CreateWindow 関数でウィンドウを作ってから
wglMakeCurrent 関数でレンダリングコンテキストと
そのウィンドウのデバイスコンテキストとを紐づけるまで、
レンダリングをするデバイスを選んでいる箇所は見当たりません。
例えば私のPCにはグラフィックス表示用デバイスとして
0143130
2012/12/19(水) 07:13:34.64続きです。
例えば私のPCにはグラフィックス表示用デバイスとして
Intel HD Graphics 4000、NVIDIA Quadro K2000M の2つがあります。
OpenGL をどちらのデバイスを使用してレンダリングするのか、
初期化時に選択するような記述は特にしていないのですが、
いつの間にか選択していたと言うことでしょうか。
もしそうなら、今どちらのデバイスでレンダリングしているのか、
という事が分かる関数はあるのでしょうか。
0144デフォルトの名無しさん
2012/12/19(水) 08:02:32.00少なくとも標準APIでの指定は出来ないと思います
どちらのデバイスを使っているかは glGetString()すれば
判ります
0146デフォルトの名無しさん
2012/12/19(水) 12:39:44.35指定はできないとか嘘をつくのはやめろ。
0147130
2012/12/19(水) 12:54:15.10指定する方法を教えていただけませんか。
あるいは、指定する方法の調べ方のヒントでも構いません。
「HDC GPU」や「HDC ビデオカード」などのキーワードでググってみても
なかなか分かりません。
0148デフォルトの名無しさん
2012/12/19(水) 12:57:06.74難しい(おそらく不可能)ために、使用時点で有効になっているGPUの
デバイスコンテキストが作成されると考えて差し支えないはず。
つまり「どのGPUへのコンテキストを作るか選びたい」という要求自体
不可能ということになる。
0149デフォルトの名無しさん
2012/12/19(水) 13:02:28.020150デフォルトの名無しさん
2012/12/19(水) 13:27:05.24HDCを取得した時点のデバイスが対象になるから、
そうなるようにウインドウの位置を調整すれば良いだけの話。
0151デフォルトの名無しさん
2012/12/19(水) 13:30:35.82プロセスをその数だけ作ってオフラインレンダリングした後に、
データをソケットなりで引き渡せば良い。
0152130
2012/12/19(水) 19:30:07.50ごめんなさい、まだ意味が分かりません。
複数のディスプレイアダプターがインストールされている場合、
DirectX はどれを使うか選択できたような記憶があるのです。
その時に、ウィンドウの位置などは特に気にせずとも設定できたような気がするのですが、
OpenGL で同じような事はできないということでしょうか。
0153デフォルトの名無しさん
2012/12/19(水) 19:45:15.060154デフォルトの名無しさん
2012/12/19(水) 19:51:01.84モニタが一枚なら、知らん。
0156デフォルトの名無しさん
2012/12/19(水) 21:27:38.03まあ想像通りの結果だったけど。
0157デフォルトの名無しさん
2012/12/19(水) 21:55:44.570158デフォルトの名無しさん
2012/12/19(水) 22:53:33.260159デフォルトの名無しさん
2012/12/19(水) 23:41:11.63nearを小さく小さく
でも最初のglFrustumに渡した値はわからず、glGet projection matrixでその時の行列を取得したんだけど、この16個の値のどれをイジればもっと手前までレンダリングできるのでしょうか?
宜しくお願いします。
0160デフォルトの名無しさん
2012/12/19(水) 23:46:44.38ttp://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
0161デフォルトの名無しさん
2012/12/20(木) 00:04:50.660162デフォルトの名無しさん
2012/12/20(木) 00:10:45.330163デフォルトの名無しさん
2012/12/20(木) 00:15:29.410164デフォルトの名無しさん
2012/12/20(木) 00:17:47.42ありがとう!
0165デフォルトの名無しさん
2012/12/20(木) 00:21:28.980166デフォルトの名無しさん
2012/12/20(木) 00:54:20.67線形数学は大したことないぽ
0167166
2012/12/20(木) 00:56:02.430168デフォルトの名無しさん
2012/12/20(木) 06:01:50.67ネイティブ最強、ウェブもEmscriptenとWebGLがモノになれば最強でしょ。
JavaScriptやその派生言語で本格的な3Dコード書くとか想像できないし
(そもそもこっちの連中、なんでJavaScriptじゃ駄目なのか根本的に分かってない)
だからその調子で正道を歩んでほすぃ
俺は出戻りを考えたりもするけどブランクがありすぎる
0169デフォルトの名無しさん
2012/12/20(木) 07:51:19.320170デフォルトの名無しさん
2012/12/20(木) 21:58:31.12JITでネイティブ言語の10%落ちくらいまで行ければいいんだけどなあ
0171デフォルトの名無しさん
2012/12/21(金) 00:40:26.020172デフォルトの名無しさん
2012/12/21(金) 09:01:05.690173デフォルトの名無しさん
2012/12/21(金) 22:15:53.32>>2のディジタル映像表現ですが、ディジタル画像処理の間違いではないですか?
www.amazon.co.jp/dp/4903474011/
ディジタル画像表現だと内容に違和感があります。出版社も違いますし・・・
www.amazon.co.jp/dp/4903474100/
0175デフォルトの名無しさん
2012/12/27(木) 11:53:23.850176デフォルトの名無しさん
2012/12/28(金) 17:05:27.800177デフォルトの名無しさん
2012/12/28(金) 17:34:09.280178デフォルトの名無しさん
2012/12/28(金) 17:38:43.530179デフォルトの名無しさん
2012/12/31(月) 14:23:29.65(3,4年前のノートPCで動くレベル)
開発をしろと言われたけど
OpenGL のバージョンどれくらいが良い?
(とりま Android,iOSで動く ES2.0のC++のエンジンは作った事ある )
あと お勧めの追加ライブラリある?
Win&Mac なのでC++確定だとおもうけど・・
0180デフォルトの名無しさん
2012/12/31(月) 15:38:58.04OpenGL 2.0(1.4 まで下げなくてもいいと思う)
お勧めの追加ライブラリあるかと訊かれても何を開発するのか分からん
0181デフォルトの名無しさん
2012/12/31(月) 16:25:25.13サンクス。前にスマホ用のレンダラー作ってその時ライブラリ探すのだるくて
バカみたいにMatrixやクオータニオン計算まで Cとアセンブラで自作して
今回楽したかったので。
今回作るのは レンダラー。 一般的な3D処理 スキンメッシュ〜補完、IK
もしかしたら物理演算 セルフシャドウ
ぐらいの 2.0で十分出来る内容で
Boostとか無駄に使いまくってるからそれと親和性あるライブラリあったら
楽したい
0182デフォルトの名無しさん
2012/12/31(月) 17:36:14.05> 今回作るのは レンダラー。 一般的な3D処理 スキンメッシュ〜補完、IK
> もしかしたら物理演算 セルフシャドウ
それセルフシャドウ以外はOpenGLもそのバージョンも関係ない。
スキンメッシュやIKなんかGDIでワイヤーフレーム描画しても実現できる。
セルフシャドウはフラグメントシェーダー使うとやりやすいけど、
OpenGL 2.0 でいい(1.5 でもいいかも知れん)。
> Boostとか無駄に使いまくってるからそれと親和性あるライブラリあったら
> 楽したい
レンダラーを自作するための「どのようなライブラリ」が欲しいのか明記してくれ。
0183デフォルトの名無しさん
2012/12/31(月) 17:39:14.372.0だとDLLを別途配布しないといけなくない?
なんでWindowsはOSバージョンアップ時に更新していかないんだろ。
政治的な問題があるのかな?
0184デフォルトの名無しさん
2012/12/31(月) 18:36:50.870185デフォルトの名無しさん
2012/12/31(月) 18:52:14.07政治的な問題って例えば何?
0186デフォルトの名無しさん
2013/01/01(火) 01:56:45.06ライブラリならとりあえずGLEWとGLMだけで十分だろ
0187デフォルトの名無しさん
2013/01/04(金) 13:54:37.18GLMなんて数学ライブラリがあったのね。知らなかった。
しかもMITライセンスか。いいねー。
0188デフォルトの名無しさん
2013/01/04(金) 14:24:37.99typedef float float3 __attribute__((ext_vector_type(3)));
float3 cross_3x3(float3 a, float3 b) {
return a.yzx * b.zxy - a.zxy * b.yzx;
}
こう書けて良い感じ
0189デフォルトの名無しさん
2013/01/04(金) 14:46:29.40その例だとあまり御利益ない感じ。
0190デフォルトの名無しさん
2013/01/04(金) 15:23:00.260191デフォルトの名無しさん
2013/01/04(金) 15:48:19.88良い感じっぷりを他の例でも挙げてくれるとありがたい。
というのも、外積による例だと既に作られているという事情もあって、
今ひとつどの辺りが良い感じなのか俺には分かりにくかった。
今まで自分が作ってきた3Dプログラム(主にゲーム)を振り返ってみて、
要素の参照順を変えられると助かったシーンを思い返してみてるんだけど、
なかなか思い浮かばないんだ。
0192191
2013/01/04(金) 15:50:56.51その良い感じっぷりが感じられるような例が何かないかなぁという意味。
0193デフォルトの名無しさん
2013/01/04(金) 15:56:49.720195デフォルトの名無しさん
2013/01/04(金) 16:05:57.45ま細かい操作をしないのなら無用でしょうさ。
0196191
2013/01/04(金) 16:09:21.70どうしても今知る必要があるという質問ではないので、
変にこじれる前にこれで退散する。
0197デフォルトの名無しさん
2013/01/04(金) 20:32:09.440198デフォルトの名無しさん
2013/01/09(水) 16:18:37.78Openglでobjファイルの点群データを扱っているのですが、点群にglCcolorで色を付けた際、ある方向から見ないとまともに色がついて表示されませんでした。
それ以外の方向から見ると多少濃淡が着いただけの水色で表示されてしまいます。どなたかこの現象の心当たりなどございませんか?
0199デフォルトの名無しさん
2013/01/09(水) 16:31:36.19色が見えるようになるのは、右上に表示されている座標軸のマークが黒くなっている時でした
恐らく光源との関係があると思います
0200デフォルトの名無しさん
2013/01/09(水) 17:06:57.92何が起きているのか想像ができません。
一昨日来やがってくださいませ。
0201デフォルトの名無しさん
2013/01/09(水) 17:18:51.650202デフォルトの名無しさん
2013/01/09(水) 17:19:06.020203デフォルトの名無しさん
2013/01/09(水) 18:43:56.840204デフォルトの名無しさん
2013/01/15(火) 00:44:45.32Object毎にglLoadMatrixfするのはやらない?
0205デフォルトの名無しさん
2013/01/16(水) 00:50:53.220206デフォルトの名無しさん
2013/01/16(水) 00:58:27.870207デフォルトの名無しさん
2013/01/17(木) 16:39:06.010208デフォルトの名無しさん
2013/01/17(木) 19:56:39.320209デフォルトの名無しさん
2013/01/18(金) 09:41:58.44by重役に恨みがある
0210デフォルトの名無しさん
2013/01/18(金) 16:10:17.51glColor4f(r,g,b,a)のr,g,bの値を1.0未満に設定して描画することで画像の色合いを暗くすることはできるのですが、
逆に画像を白っぽくしたい場合はどうすればよいのでしょうか?
0211デフォルトの名無しさん
2013/01/18(金) 16:22:02.770212デフォルトの名無しさん
2013/01/18(金) 16:35:46.711.0に近づけてもそれ以上にしても、画像の元の色以上には白くなりません。
マイナスも試しましたが、0.0fと同じく黒くなるだけでした。
以下、現状のソースの抜粋です。
glColor4f(r, g, b, a);// rgbが1.0未満だと暗く描画される
glPushMatrix();
glLoadIdentity();
glBindTexture(GL_TEXTURE_2d, tex);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glVertexPointer(2, GL_FLOAT, 0, ver);
glTexcoordPointer(2, GL_FLOAT, 0, coord);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glPopMatrix();
glColor4f(1.0f, 1.0f, 1.0f, 1.0f); // 元の色合いに戻す
0213デフォルトの名無しさん
2013/01/18(金) 16:58:28.27馬鹿には無理
0214デフォルトの名無しさん
2013/01/18(金) 17:09:49.69GL_MODULATEをGL_BLENDに変更するとか?
0215デフォルトの名無しさん
2013/01/18(金) 17:21:07.560216デフォルトの名無しさん
2013/01/18(金) 17:29:45.47ありがとうございます。
うまくいきそうです。
0217デフォルトの名無しさん
2013/01/18(金) 21:00:55.26現在、webを参考にしながら、まずはOpenGLES1で2D画像を表示させようとしています。
環境はxcode4.5、iPhone用アプリです。
それで、どうにかテクスチャにPNG画像を読み込んで表示させる事に成功したのですが、
読み込む画像が510pixを超えると、全く表示出来なくなってしまいます。
テクスチャの最大サイズが1024pixまでというのが原因かなとは思っているのですが、
ES1の場合、Retinaの画面サイズにスッポリ入るようなサイズを読み込む事はできないのでしょうか?
ちなみに、eaglLayer.contentsScale = [UIScreen mainScreen].scale;でRetina対応にしています。
0218デフォルトの名無しさん
2013/01/18(金) 22:24:09.350219デフォルトの名無しさん
2013/01/19(土) 19:24:53.23同じようなコントローラーを提供する OpenGL 用の GUI ライブラリはありますか。
OpenGL のレンダリング先ウィンドウとは別のウィンドウにコントローラーを表示したり、
同じウィンドウ内でも別のHWND領域に表示したりということではなく、
DXUT のようにレンダリング式にオーバーラップして表示するタイプのものです。
以前ネット巡回中に偶然 OpenGL 用のそのようなライブラリを見たような気がしたのですが、
その時は全く興味なかったため、URL も、回った時の検索ワードも記憶していません。
どなたかご存じないでしょうか。
0220デフォルトの名無しさん
2013/01/19(土) 19:44:40.050221デフォルトの名無しさん
2013/01/19(土) 20:14:54.90ゲームでよくあるフェードイン・フェードアウトを実現しようとして、
テクスチャにJPG画像をまず描画し、0.1秒ごとにアルファ値を増やしたColorで
画像の上を画面いっぱいに塗りつぶしをしているのですが、RGBAの色情報が(0,0,0,a)のように
まっ黒の場合は、画像くっきり→じわじわ黒へ、と綺麗に実現出来ました。
同様に青や赤なども大丈夫だったのですが、(255,255,255,a)のように白の場合は
まったく半透明にならず、ずっと真っ白で塗りつぶされたままの状態です。
というか、(255,255,0,a)とか(200,180,225,a)のように、RGBを混ぜた色にしたりすると
綺麗に半透明にならない感じなのですが、色情報について、またアルファ値について
何か大きな認識間違いをしているのでしょうか?
0222デフォルトの名無しさん
2013/01/19(土) 20:40:16.460223デフォルトの名無しさん
2013/01/19(土) 20:48:12.031チャンネルずつ0にして対応確認しろよ
0224219
2013/01/19(土) 21:13:51.38ありがとうございます。
スライドバーそのものでなくても、
マウスのドラッグで値を変更できる仕組みがあれば構いません。
見たところ AntTweakBar がそれっぽいですね。
もう少し詳細に調べてみます。
0225デフォルトの名無しさん
2013/01/20(日) 01:25:35.48UILavelなどを使いたいのですが、xib上でopenGLのViewの上に
配置して実行するとエラーになってしまいます。
こういった場合、普通にビューを重ねてもダメなのでしょうか?
0226デフォルトの名無しさん
2013/01/20(日) 03:01:26.390227デフォルトの名無しさん
2013/01/20(日) 10:49:03.700228デフォルトの名無しさん
2013/01/20(日) 13:42:53.07iPhone開発のスレ逝け
0229デフォルトの名無しさん
2013/01/22(火) 20:03:29.55このtutorialやってたんですが、GL_FALSEがエラーになるのですが何故でしょうか?
eclipseのヘルプにはGL_FALSE cannot be resolved to a variableとでてしまいます。
tutorialの指示通り、GL20をimport staticしています。
0230デフォルトの名無しさん
2013/01/22(火) 20:32:16.44GL11も必要なんですね・・。
0231デフォルトの名無しさん
2013/01/22(火) 21:29:27.440232デフォルトの名無しさん
2013/01/27(日) 23:18:55.32COLLADAをパースしたところ、trianglesのインデックスリストに
頂点座標(0,1,2)、法線(0,0,0)みたいになってました。
ようするに、法線は全頂点で同じなのでそうなっていると思いますが、
OpenGLでこれをそのまま描画する方法は無いでしょうか?
最終的にはglDrawElementsで描画するには法線データを3つコピーして
(0,1,2)で描画できるようにしましたが。
0233デフォルトの名無しさん
2013/01/28(月) 02:41:55.310234デフォルトの名無しさん
2013/01/28(月) 22:40:15.04多分無理だろうと思えてきた。
0235デフォルトの名無しさん
2013/01/29(火) 18:30:06.78に対応した OpenGLアプリ作りたいんだが(C++)
OpenGLのバージョン、ライブラリ、UIライブラリ等のオススメある?
今 OpenGL2.0とES2.0を コンパイルオプションで分けて
GLUT+Qtフレームワークを想定している
作るものは、モデルビュワー&アニメーション作成かな。
最終的には物理演算つけて楽しみたい。
0236デフォルトの名無しさん
2013/01/29(火) 18:33:55.110237デフォルトの名無しさん
2013/01/29(火) 20:36:10.780238デフォルトの名無しさん
2013/01/29(火) 20:48:20.690239デフォルトの名無しさん
2013/01/30(水) 04:50:54.630240デフォルトの名無しさん
2013/01/30(水) 10:41:44.17取り敢えず手元ではQtOpenGLアプリがWin/Mac/Linuxで動いている。
私もタブレットを睨んでいるので、経過を報告してくれると嬉しい。
0241デフォルトの名無しさん
2013/01/30(水) 12:50:37.93今はまだ VisualStudioで作っててWindowsオンリー。
Qtがeclipseで動かなくて・・eclipseで動けばマルチプラットフォームテストするのに
QtでGL2.0使うには5.0が必要っぽいから βの5.0に変えた。
GL2.0で三角形を出したところでGLは止めてる
現状は他のライブラリ (Qt5.0 Win64ビット、OpenCL、Boost、CUDA)等の環境構築してる
0242デフォルトの名無しさん
2013/01/30(水) 20:57:46.97頂点データが次のようになってた場合、
struct VertexData { float x, y, z; float r, g, b; };
VertexData v[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ・・・}
size = 3 で stride = 0 の場合は 1, 2, 3, 4, 5, 6 ・・・ って並ぶけど、
これを 1, 2, 3, 7, 8, 9, 13, 14, 15 ・・・って並ばせたいからと言って、
size = 3、stride = 3 では意図した通りにならないじゃん。
この場合、size = 3、stride = 6 と指定しないとダメなんだよね。
stride = 0 だけ特別扱い。
小一時間はまったよ、なんかムカツク。
0243デフォルトの名無しさん
2013/01/30(水) 21:23:41.150244デフォルトの名無しさん
2013/01/30(水) 21:41:18.18頂点属性ごとに別の配列にしとけ
0245デフォルトの名無しさん
2013/01/30(水) 21:44:07.76あるある
まあ慣れの世界だ
0246デフォルトの名無しさん
2013/01/30(水) 22:09:28.49そう思わない人もいるんだな。
strideがsize以下は全部sizeと同じとしてるんだろう。
0247デフォルトの名無しさん
2013/01/30(水) 22:12:49.36普段使う値「0」から間違った想像を働かせてしまう
0248デフォルトの名無しさん
2013/01/30(水) 22:19:14.070249242
2013/01/30(水) 22:36:37.75>>246
たしかに、ストライドってそういう意味だよね。
歩幅もストライドって言うし。
むしろ、size以下は全部sizeと同じなのが例外規定なのか。
>>247
そういうこと。
ギャップと勘違いしてた。
>>248
うん、そうしとくよ。
0250246
2013/01/30(水) 23:08:14.37> むしろ、size以下は全部sizeと同じなのが例外規定なのか。
いや、仕様をちゃんと確認したら
If stride is 0, the generic vertex attributes are understood to be tightly packed in the array.
ってなってたから、0が特別扱いでびっちり詰まってる意味で、それ以外は値通りなんだろうね。
size>stride!=0だったらどうなるんだろ?
0251デフォルトの名無しさん
2013/01/30(水) 23:11:03.860252デフォルトの名無しさん
2013/01/30(水) 23:57:11.79stride=バイトオフセット
だけど、最終行の過程では単にstride通りにデータフェッチするだけで例外はおこらない
0253デフォルトの名無しさん
2013/01/31(木) 00:36:42.97/|□□□□□□
--------------
0|□□□
1| □□□
2| □□□
...
みたいなオーバーラップするデータフェッチも可能ということだね
簡易に時系列データの平滑化やNURBS曲線のKnotに使えそう?
0254デフォルトの名無しさん
2013/02/02(土) 17:58:37.68今までも、そしてこれからも、ブラウザシェアはIEがトップだろうし。
まあ、無理っぽいけどさ。
0255デフォルトの名無しさん
2013/02/02(土) 18:24:19.690256デフォルトの名無しさん
2013/02/02(土) 18:53:53.830257デフォルトの名無しさん
2013/02/02(土) 19:59:23.14そのシェーダープログラム内で一意ならどんな番号を振ってもいいの?
それとも、小さい数から順に振っていかないとまずい?
0258デフォルトの名無しさん
2013/02/02(土) 20:09:04.2515番までなら自由に指定できるはずだ
0259257
2013/02/02(土) 20:31:36.28> 15番までなら自由に指定できるはずだ
ということは、この番号は単なる識別のためのIDじゃなくて、
何というか、TCP/IP のポート番号みたいなものか。
アプリケーション側と頂点シェーダー側を繋ぐパイプが、
最低でも16本(0-15)は確保されているから、この中で自由に使ってちょ
ということね。
GUIDみたいな一意な番号を適当に振っていいものだと思ってた。
認識を改めねば。
ありがとう。
0260デフォルトの名無しさん
2013/02/02(土) 23:18:07.89IEはただのブラウザじゃなくて膨大な業務クライアントを動かす超重要なプラットフォームなんだから
0261デフォルトの名無しさん
2013/02/03(日) 01:09:28.550262デフォルトの名無しさん
2013/02/05(火) 20:27:46.89glGenBuffers + glBindBuffer + glBufferData で頂点データを設定して、
glGenVertexArrays + glbindVertexArray + glVertexAttribPointer で VAO を設定します。
その後 glDarwArrays などでレンダリングする前に、
先ほど glGenBuffers で作成したオブジェクトを glDeleteBuffers で削除しても、
全く問題なくリンダリングされるのですが、この挙動はドライバ依存でしょうか。
それとも、glGenBuffers は単価に削除フラグを立てるだけで、
実際は VAO に使われている間は生き続けている、と解釈して良いのでしょぅか。
0263デフォルトの名無しさん
2013/02/05(火) 22:19:14.81ttp://www.opengl.org/sdk/docs/man/xhtml/glDeleteBuffers.xml
0264262
2013/02/05(火) 23:09:32.80glDeleteBuffers の説明には
If a buffer object that is currently bound is deleted,
the binding reverts to 0 (the absence of any buffer object).
と書かれていますが、どういう意味なのでしょうか。
reverts to 0 というのがよく分からないのですが、
単に「全てのバッファが強制的に削除される」の言い方を変えただけですか。
そして、glVertexAttribPointer の説明には
When a generic vertex attribute array is specified, size, type,
normalized, stride, and pointer are saved as vertex array state,
in addition to the current vertex array buffer object binding.
とも書かれていますが、これは、この関数呼び出し時にバインドしている
vertex array buffer object も一緒に保存されるという意味ではないですか。
0265デフォルトの名無しさん
2013/02/06(水) 01:57:25.25excite先生にかけて直訳した文章を英文と見比べて
自分なりに意訳してみればある程度推測がつくよ。
0266デフォルトの名無しさん
2013/02/06(水) 01:57:52.33○ >>264
だった。失礼。
0268デフォルトの名無しさん
2013/02/06(水) 11:46:07.290269デフォルトの名無しさん
2013/02/06(水) 20:32:53.63手元のOpenGL4.0の訳本によれば、
付録D.1.2 削除されたオブジェクトとオブジェクトの名前のライフタイム
バファやテクスチャー(以下省略)が削除される場合、その名前はすぐに無効(例えば未使用と印がつく)になりますが、
実際のオブジェクトはそれが使用されなくなるまでは削除されません。
と、明確に定義されている。
上の例で言えばVertexArrayオブジェクトが生きている限りそこにバインドされたバッファオブジェクトは削除されない
0270269
2013/02/06(水) 20:34:23.39DirectXはもう新規開発をやめたので今後10年ぐらい
3D APIの標準はOpenGLの4.2あたりになると思う
0271デフォルトの名無しさん
2013/02/06(水) 20:37:16.730272262
2013/02/06(水) 20:58:14.60私もそう思った(期待した)のですが、少し気になることがあります。
glDeleteShader の説明には、
(http://www.opengl.org/sdk/docs/man/xhtml/glDeleteShader.xml)
アタッチされているオブジェクトを glDeleteShader に指定した場合、
削除フラグが立つと明記されています。
glDeleteProgram も、
(http://www.opengl.org/sdk/docs/man/xhtml/glDeleteProgram.xml)
カレントステートで使われていたら削除フラグを立てると明記されています。
glDeleteSync も明記されています。
(http://www.opengl.org/sdk/docs/man/xhtml/glDeleteSync.xml)
しかし、他の delete 系関数の説明には、削除フラグについては何もか書かれていません。
もちろん glDeleteVertexArrays もです。
上記の3つの関数(に関わるオブジェクト)のみ削除フラグが明記されています。
これは、どういうことでしょうか。
深く考えず、全てのOpenGL系オブジェクトについて、
使用中のオブジェクトの削除はフラグが立つだけと考えて問題ないのでしょうか。
0273262
2013/02/06(水) 20:59:52.46> もちろん glDeleteVertexArrays もです。
[訂正]
もちろん glDeleteBuffers もです。
0274デフォルトの名無しさん
2013/02/07(木) 00:03:03.36>the binding reverts to 0 (the absence of any buffer object).
バインドが解除されて即座にオブジェクトが削除されると読めるから
削除されたはずのバッファを参照するVAOが描画できちゃうのが
気持ち悪いってのは確かにそうやねえ
まあ見えないステートが多くて変に関数使いまわそうとするOpenGLではよくあることよ。。。
(ところでDirectXが新規開発してないってどこから出たんだろう)
0275デフォルトの名無しさん
2013/02/07(木) 06:20:18.940276デフォルトの名無しさん
2013/02/07(木) 08:17:56.430277デフォルトの名無しさん
2013/02/07(木) 11:22:23.94radeonのは仕様通りに動くと聞いたことがある
0278デフォルトの名無しさん
2013/02/07(木) 11:44:02.75○柔軟性がある
0279デフォルトの名無しさん
2013/02/07(木) 13:03:58.330280デフォルトの名無しさん
2013/02/08(金) 01:55:13.20DirectXのアップデート予定は無関係だろ。
0281デフォルトの名無しさん
2013/02/08(金) 19:16:23.65APIで受け取ったデータをGPUのOpenGLドライバに流すだけですから
0282デフォルトの名無しさん
2013/02/08(金) 19:35:09.250283デフォルトの名無しさん
2013/02/08(金) 22:03:50.640284デフォルトの名無しさん
2013/02/08(金) 22:44:03.12ソース
0285デフォルトの名無しさん
2013/02/09(土) 00:04:55.44>>272だから付録のDを読めって。全部明確に書いてあるから
>>274そう読めるなら英語の勉強からやり直せ
0286デフォルトの名無しさん
2013/02/09(土) 00:26:54.230287デフォルトの名無しさん
2013/02/09(土) 00:51:30.340288デフォルトの名無しさん
2013/02/09(土) 07:07:56.23馬鹿の考えはさっぱり分からない。
0289デフォルトの名無しさん
2013/02/09(土) 08:44:53.780290デフォルトの名無しさん
2013/02/09(土) 09:29:47.350291262
2013/02/09(土) 10:07:58.82> だから付録のDを読めって。
>>269 の「OpenGL4.0の訳本」というのが何なのか分からなかったのですが、
http://www.opengl.org/registry/ にある
「OpenGL 4.0 Core Profile Specification (updated March 11, 2010)」
これの和訳なのでしょうか。
このような資料があることを今まで知らなくて、早速 D.1.2 を読みました。
今回の私の場合で言えば、コンテナが保持しているオブジェクトの削除、の事ですね。
確かにコンテナ自体が削除されたり、内部のオブジェクトを別のものに再バインドしない限り、
保持しているオブジェクトは(glDeleteObjectsしても)削除されないと書かれていますね。
また、保持されたオブジェクトを削除した場合の注意点も書かれてますね。
(主に、Gen* で得られる name のアタッチについて)
ありがとうございます。
おかげさまで、はっきりさせることができました。
0292デフォルトの名無しさん
2013/02/09(土) 11:06:00.14OpenGL4.0グラフィックスシステム
http://www.amazon.co.jp/dp/4877832556/
仕様書はもちろん無料。7140円は翻訳代だろう。
マイナーバージョンレベルで少し古くなってきたけど今のところ全く問題ない
どうせテッセレーションとか使わないし・・・
0293デフォルトの名無しさん
2013/02/12(火) 04:36:46.640294293
2013/02/12(火) 04:48:56.160295デフォルトの名無しさん
2013/02/12(火) 05:03:24.520296デフォルトの名無しさん
2013/02/12(火) 05:20:22.720297デフォルトの名無しさん
2013/02/12(火) 06:04:56.750298デフォルトの名無しさん
2013/02/12(火) 19:12:18.83それはmarching〜の入力データのほうの使い方
0299デフォルトの名無しさん
2013/02/13(水) 14:30:39.44GLuint m_a;
int a = 0;
float *b;
float *c;
m_a = a;
b = 0;
c = b;
if (!a)
{
glBegin(GL_POINTS);
int k = 0;
for (int i = 0; i < 100; ++i)
{
glVertex3fv(&c[k]); //この行で例外発生
k += 1;
}
glEnd();
}
以上のプログラムなんですが、OpenGL上では正しく機能するのに対して、ARtoolkitで使うとマーカーを読み込んだ際に例外エラーが発生して終了してしまいます
どなたか原因が分かる方はいらっしゃいませんか?
0300デフォルトの名無しさん
2013/02/13(水) 14:36:07.02たまたま動いたのをそう錯覚してるだけでは
0301デフォルトの名無しさん
2013/02/13(水) 14:44:02.31cが0で&c[k]とかやったら落ちて当然じゃね
0302デフォルトの名無しさん
2013/02/13(水) 15:24:13.94滅茶苦茶過ぎてワロタ
ARtoolkitというよりC言語の初歩の問題ですから
0303デフォルトの名無しさん
2013/02/13(水) 20:19:02.16クソして書き直せボケ
0304デフォルトの名無しさん
2013/02/13(水) 23:16:52.89ver.0.4 だけど、見た感じ良さそうだなぇ。GLM(OpenGL Mathmatics) なら最近使い始めて
満足しています。
0305デフォルトの名無しさん
2013/02/14(木) 01:00:02.07ilutなんてアレをリスペクトしたツールキットまであるしな
0306デフォルトの名無しさん
2013/02/14(木) 03:36:19.02言い方はキツいけど >>302 の言うことで尽きてる。
C言語のまともな本を通読するべき。
0307デフォルトの名無しさん
2013/02/14(木) 10:17:48.15俺のお気に入りはSean Barrettさんの画像ライブラリ
http://nothings.org/
依存しているライブラリがないのでこれ一つコピって来れば動くのがうれしい
0308デフォルトの名無しさん
2013/02/14(木) 22:31:35.940309デフォルトの名無しさん
2013/02/15(金) 00:05:48.810310デフォルトの名無しさん
2013/02/16(土) 14:25:24.60どのようなプリミティブのレンダリングに対しても、
実用上少なくとも頂点シェーダーとフラグメントシェーダーは必要である、
という認識で良いんですよね。
つまり、シェーダーが無ければ意味がない、と。
0311デフォルトの名無しさん
2013/02/16(土) 17:11:00.82コンパチブルプロファイルだと固定機能パイプラインが使われるけど。
自分でよく確認しましょう。
http://www.opengl.org/documentation/current_version/
0312デフォルトの名無しさん
2013/02/16(土) 17:38:08.66仕様内を undefined で検索したところ、このように書かれているのを見つけました。
If there is no active program for the vertex or fragment shader stages,
the results of vertex and/or fragment processing will be undefined.
これは結局のところ、「両方が揃わないと結果は未定義」と解釈しました。
ありがとうございました。
0313デフォルトの名無しさん
2013/02/16(土) 18:07:16.230314デフォルトの名無しさん
2013/02/16(土) 18:15:58.150315デフォルトの名無しさん
2013/02/16(土) 19:31:33.88どんな風に描画されるの?
真っ黒とか?
0316デフォルトの名無しさん
2013/02/17(日) 00:51:10.950317デフォルトの名無しさん
2013/02/17(日) 02:41:32.01通称雑音っていうイカレ野郎だから。
0318デフォルトの名無しさん
2013/02/17(日) 03:29:23.070319デフォルトの名無しさん
2013/02/17(日) 04:42:26.930320デフォルトの名無しさん
2013/02/17(日) 08:32:29.820321デフォルトの名無しさん
2013/02/17(日) 08:33:49.330322デフォルトの名無しさん
2013/02/17(日) 09:29:16.36全てのOpenGLコマンドの後ろでglGetErrorを呼ばざるを得ず
コードがごちゃごちゃして見にくい事この上もない
0323デフォルトの名無しさん
2013/02/17(日) 09:49:34.63許してあげようよ。
0324デフォルトの名無しさん
2013/02/17(日) 10:07:23.821フレームに1回呼べばエラーの有無はわかるし、あとはエラーが起こりそうなブロック毎とかで十分では
0325デフォルトの名無しさん
2013/02/17(日) 10:19:50.110326デフォルトの名無しさん
2013/02/17(日) 13:27:17.37では、ダメなんでしょうか?一行挟むだけ。
0327デフォルトの名無しさん
2013/02/17(日) 13:29:29.48■GLI(OpenGL Image)
http://www.g-truc.net/project-0024.html
■DevIL
http://openil.sourceforge.net/
■SOIL(Simple OpenGL Image Library)
http://lonesock.net/soil.html
■stb_image.c(Sean Barrett/C image loading library)
http://www.nothings.org/
0328デフォルトの名無しさん
2013/02/17(日) 13:32:49.860329デフォルトの名無しさん
2013/02/17(日) 18:00:14.41OpenGLのテクスチャオブジェクトまで作ってくれるのは余計なお世話だと感じる
coreプロファイルだと使えなくて残念だったり
0330デフォルトの名無しさん
2013/02/17(日) 22:04:07.360331デフォルトの名無しさん
2013/02/17(日) 23:21:26.900332デフォルトの名無しさん
2013/02/18(月) 09:50:30.67お前は俺か
それがSean Barrettさんのライブラリな
stb_load()一発で全ての画像ファイルを読み込んでchar*が返ってくる
依存ライブラリがなく1つの.cファイルに全部収まっている(libzすら不要)なので
1つコピってくれば動くのがうれしい
ってか固有名詞付けろよ・・・・
0333デフォルトの名無しさん
2013/02/20(水) 21:21:12.04ライセンスってどうなってる?
0334デフォルトの名無しさん
2013/02/20(水) 21:43:34.08GLI --> MIT
DevIL --> LGPL
SOIL --> Public Domain
stb_image.c --> public domain
これくらいサイトを見たり、ダウンロードしてみれば分かるよな
自分で簡単な調査くらいしてから質問しろ
0335デフォルトの名無しさん
2013/02/20(水) 21:56:48.92stb_image.cをダウンロードしてソース見ながら聞いたけどまさか1行目にあるとは思わなんだ
0336デフォルトの名無しさん
2013/02/20(水) 22:01:29.06stb_image.c のページに書いてあるんだが・・・
source: stb_image.c public domain C image loading library
0337デフォルトの名無しさん
2013/02/20(水) 23:26:37.780338デフォルトの名無しさん
2013/02/20(水) 23:35:39.48それにまじめな話、ライセンスはデリケートなものだから、
又聞きじゃなくて、ちゃんと原文を調べた方が良いと思う
0339デフォルトの名無しさん
2013/02/20(水) 23:45:49.140340デフォルトの名無しさん
2013/02/21(木) 00:08:26.79スレチだろというぶっきらぼうな言い方で気を悪くしたのなら謝る、ごめん。
あれらのライセンスについては自分なりに理解はしてるつもりで、
今まで会社でもそれで大きなトラブルは起していないので、
それを私個人の意見として説明することもできるけど、
十中八九だれかが解釈の間違いを指摘するはず。
以前もこのスレや別のスレなどでライセンスの解釈を巡って
激論になったような気がする。
その中には悲しいかな罵倒雑言も多く含まれていた。
たぶん、私じゃなく、別の人が説明しても似たような状況になると思う。
そうなると予測していながら同じ状況を招くきっかけを作るのは
やっぱり良くないと思う。
この板にもライセンス総合スレがあるから、
そちらで訊いた方が良くないかな。
0341デフォルトの名無しさん
2013/02/21(木) 08:21:36.46Public Domain と public domain に違いはあるのですか?
0342デフォルトの名無しさん
2013/02/21(木) 19:58:33.41ないよ
>>327 にあるそれぞのページからコピペしただけ
0343デフォルトの名無しさん
2013/02/21(木) 22:32:48.37LGPL:微妙に感染症 諸悪の根源のGPLよりはましだが近づかないに越したことない
PD:どうにでもして(その動画、ウイルスかもよ)
0344デフォルトの名無しさん
2013/02/21(木) 22:44:50.66パブリックドメインは国によって扱いが違う、
とかいう話を聞いたことがある。
0345デフォルトの名無しさん
2013/02/21(木) 23:17:37.95LGPLは基本的には安全だよ
0346デフォルトの名無しさん
2013/02/21(木) 23:54:55.730347デフォルトの名無しさん
2013/02/22(金) 18:30:09.74BSDlicenseは?
0348デフォルトの名無しさん
2013/02/22(金) 19:58:05.050349デフォルトの名無しさん
2013/02/22(金) 20:26:02.810350デフォルトの名無しさん
2013/02/22(金) 22:26:44.950351デフォルトの名無しさん
2013/02/22(金) 22:46:07.780352デフォルトの名無しさん
2013/02/24(日) 00:09:49.74変な機能入れたいならOpenGL拡張にしてしまえば良いだけだし
既存のPC用のデバッガやらなんやらのツール流用も楽だろうし
0353デフォルトの名無しさん
2013/02/24(日) 02:52:37.920354デフォルトの名無しさん
2013/02/24(日) 04:34:32.350355デフォルトの名無しさん
2013/02/24(日) 08:35:29.300356デフォルトの名無しさん
2013/02/24(日) 09:23:08.02自分の目でそのAPIを見られれば100%信じると思う。
0357デフォルトの名無しさん
2013/02/24(日) 09:31:56.960358デフォルトの名無しさん
2013/02/24(日) 10:16:52.050359デフォルトの名無しさん
2013/02/24(日) 10:40:54.66グラフィックAPIは、Android 5.0に標準搭載されるOpenGL ES 3.0
0360デフォルトの名無しさん
2013/02/24(日) 12:13:39.530361デフォルトの名無しさん
2013/02/24(日) 12:35:49.59はいはいw
0362デフォルトの名無しさん
2013/02/24(日) 12:59:30.420363デフォルトの名無しさん
2013/02/24(日) 13:16:53.31ゲーム機はスマホじゃねーんだよ。
0364デフォルトの名無しさん
2013/02/24(日) 14:25:32.57Androidは、既にゲーム機向けのOSになっているよ
今年は世界中で一気にAndroidゲーム機が発売されるしね
0365デフォルトの名無しさん
2013/02/24(日) 14:37:22.330366デフォルトの名無しさん
2013/02/24(日) 15:52:45.710367デフォルトの名無しさん
2013/02/24(日) 16:21:02.680368デフォルトの名無しさん
2013/02/25(月) 01:35:33.25マジレスしてしまうが、それはないだろw
ES 3.0ってジオメトリシェーダーとかテッセレータとかないんじゃなかったっけ?
PS3ではgcmっていうRSX特化APIがあったけど、シェーダモデル5.0時代に似たようなAPIはそれなりに死ぬような気がするし(gcmはあれ制御がめっさめんどくさかった……)、
PS4は開発のしやすさ・PC似を標榜しているので、フツーにOpenGL4.3以上な希ガス。
0369368
2013/02/25(月) 01:46:46.41それはないと思う。
共有メモリ方式への対応、速攻で動画をシェアできたり、サスペンドできたりするためにはハードへの高度な最適化が必要で、PS3と同様に完全にカスタムなOSを作り込むはず。
0370368
2013/02/25(月) 01:47:48.48確かにAndroidもベンダが自由にカスタマイズできるが、
PS4の各種機能に完全対応させるのは一から作るより色々面倒が多い気がするし、
仮にやったら他Androidゲーム機との互換性はかなり失われるはずだ(Java VMで動作させれば大丈夫かもしれんが、それだとスピードが犠牲になりすぎる)。
Androidを採用するメリットはあまりない。
そもそもゲーム機はスマホと違って他機種との互換性をそれほど考慮する必要はないし、だったらいっそ一からカスタムで作りますわってなると思う。
ソフト面がわりかしが苦手なSCEだって、OSを一から作る技術と自負くらいはあるよ。
0371デフォルトの名無しさん
2013/02/25(月) 10:25:14.330372デフォルトの名無しさん
2013/02/25(月) 12:46:25.87PCベースのアーキテクチャではあるがOSが何かはまだ不明。
Android = Java VM上で動くアプリである可能性はほとんどない。
理由は実行速度が遅すぎるから。
0373デフォルトの名無しさん
2013/02/25(月) 13:18:38.21PS4とかアホか
0374デフォルトの名無しさん
2013/02/25(月) 16:28:26.420375デフォルトの名無しさん
2013/02/25(月) 18:15:04.11Androidを選ぶゲーム機メーカーがあるとすれば、
それは
・自力でOSを作るだけの技術or体力がない。
あるいは
・ハードの特殊機能への最適化よりも、スマホ開発者などの取り込みを優先した。
のいずれかではないかと。
いずれも、SCEのPS4には当てはまらないかな。
後者については、PS Vitaの例のSDKは当てはまってる気がするが。
0376デフォルトの名無しさん
2013/02/26(火) 21:04:29.44馬鹿しかいねえ
0377デフォルトの名無しさん
2013/02/26(火) 22:14:37.160378デフォルトの名無しさん
2013/02/27(水) 08:02:20.58GLも動くの?
0379デフォルトの名無しさん
2013/02/27(水) 11:17:30.34動くものではない。
0380デフォルトの名無しさん
2013/02/27(水) 12:13:14.26Firefox(Android版もWebGL対応)ベースなら、動くんじゃないの
0381デフォルトの名無しさん
2013/02/27(水) 16:09:12.28っていうかそもそも ChromeOS って Android のこと?
0382デフォルトの名無しさん
2013/02/27(水) 17:18:27.020383デフォルトの名無しさん
2013/02/27(水) 19:19:35.430384デフォルトの名無しさん
2013/02/27(水) 19:32:27.880385デフォルトの名無しさん
2013/02/27(水) 20:52:23.46一番簡単にOpenGLできるのが、JavaScriptだよ
0386デフォルトの名無しさん
2013/02/27(水) 21:06:55.220387デフォルトの名無しさん
2013/02/27(水) 21:15:03.06WebGL
0388デフォルトの名無しさん
2013/02/27(水) 22:38:45.76ゲーム作るのは勘弁して><
0389デフォルトの名無しさん
2013/02/28(木) 21:09:17.480390デフォルトの名無しさん
2013/03/01(金) 00:39:53.19視点を遠くして描画すると奥のオブジェクトが見えてしまいます
何でこんなことになってしまうんでしょうか?
ttp://pc.gban.jp/?p=51112.png
openGL ES 2.0使ってます
tp://www.saturn.dti.ne.jp/npaka/android/HelloGL20_21/index.html
このサイトで紹介されているソースを
.xが読み込めるように書き換えただけで描画に関する部分は殆んど変えてません
0391デフォルトの名無しさん
2013/03/01(金) 00:53:27.34gluPerspectiveに与えるニアクリップの値をなるべく大きくしてみてください
0392デフォルトの名無しさん
2013/03/01(金) 01:17:53.63解決しました!
ほんとに助かりました、ありがとう!
0393デフォルトの名無しさん
2013/03/02(土) 12:05:34.57glTexCoordPointerで1キャラクタ分の領域だけ指定して描画するって常套手段だと思うんですけど、
そうすると、端に隣のキャラクタの色が混じってしまいます。
これを回避する手段ってなんかありますか?
環境はAndroid OpenGL ES 1.1、C++です。
0394デフォルトの名無しさん
2013/03/02(土) 12:22:07.29それで駄目なら0.5ずらせ
0395デフォルトの名無しさん
2013/03/02(土) 12:32:49.99やっぱそれくらいの対処しかないですかね?
0.5ずらしたりすると、本来表示したかった端の1px分の模様が狭くなっちゃいますよね
そんな些細なことは諦めるしかないのかなぁ
0396デフォルトの名無しさん
2013/03/02(土) 12:41:05.990397デフォルトの名無しさん
2013/03/02(土) 13:20:54.000398デフォルトの名無しさん
2013/03/02(土) 13:32:48.06フラグメントシェーダー内で texture 関数に渡すテクスチャ座標を mod で調整しても、
glTexParameter系関数でテクスチャ フィルタを GL_LINEAR に設定されていれば、
指定した座標の周囲4テクセル分が加重平均されて隣のキャラクタの色が混じるよ。
0399デフォルトの名無しさん
2013/03/02(土) 13:37:44.040400393
2013/03/02(土) 14:04:26.61そうすると、64*64の画像に32*32のキャラを4枚詰めるのは無理になりますよね…
>>397,398
いずれにせよ、OpenGL 2.0は私には難しすぎる(白目)
何かしら妥協するしかないようですね。
ありがとうございました。
0401デフォルトの名無しさん
2013/03/02(土) 14:21:47.220402デフォルトの名無しさん
2013/03/02(土) 15:27:39.230403デフォルトの名無しさん
2013/03/02(土) 15:53:10.691枚のテクスチャーに複数のキャラクターか
止めとけとしか
0404デフォルトの名無しさん
2013/03/02(土) 15:54:26.42ドット絵で右と下1ドット空けてるから平気なのかも。
0405デフォルトの名無しさん
2013/03/02(土) 16:33:38.89なぜ止めた方が良い?
例えば1枚のテクスチャにアルファベットや数字を並べて、
そのテクスチャを参照してテキストを描くことはよくあるけど、
これは本質的には1枚のテクスチャーに複数のキャラクターと同じではないの?
0406デフォルトの名無しさん
2013/03/02(土) 16:57:45.36ピクセルの大きさの半分だけオフセットさせとけば問題ないんじゃね?
ドットバイドットで描画するならバイリニアフィルタも関係なくなるし
0407デフォルトの名無しさん
2013/03/02(土) 17:35:21.030408デフォルトの名無しさん
2013/03/02(土) 17:52:13.320410デフォルトの名無しさん
2013/03/02(土) 19:37:38.05ありんこ一匹通さないヌリカベみたいに通路をふさぐことを売りにするキャラがいて
1ドット空いちゃうとありんこがいっぱい通っちゃって困ると思うんですが・・・
そういう場合どうしたらいいのでしょうか
0411デフォルトの名無しさん
2013/03/02(土) 19:49:09.761ドット空けなくても滲まないのが正常だと思うのだが
0412デフォルトの名無しさん
2013/03/02(土) 20:02:07.490413デフォルトの名無しさん
2013/03/02(土) 20:42:57.85テクスチャに描かれたイメージ群は、
それぞれ隣のイメージと1ドット(テクセル)空けてあったとしても、
それをポリゴンに貼る際に参照するテクスチャ座標を正しく選べば、
空けた1ドットの部分は参照されない。
この説明では分かりづらいでしょうか。
0414デフォルトの名無しさん
2013/03/02(土) 21:06:48.75Windowのデフォルトのクライアントサイズは640x640のとき
デフォルトではテクスチャは等倍で描画されるのが好ましい
つまり画面上のピクセルとテクスチャのピクセルが完全に1対1で対応して欲しいんだけど
1ドットあけると31x31のテクスチャになってしまって引き伸ばされてぼやけて見えてしまう←これが問題
しかしニアレストネイバーに設定するとWindowサイズが変更された場合は補間して欲しいので困る
Windowサイズによってテクスチャの補間方法を切り替えるくらいしか対応策が思いつかないんだけどそれってどうなのってところ
0415デフォルトの名無しさん
2013/03/02(土) 21:30:59.600416デフォルトの名無しさん
2013/03/02(土) 22:08:03.970417デフォルトの名無しさん
2013/03/02(土) 22:51:16.1133じゃそもそもチップの座標を正確に表せないからその時点でピクセル単位での指定が
できなくなっちゃうじゃない
0418デフォルトの名無しさん
2013/03/02(土) 22:56:53.490419デフォルトの名無しさん
2013/03/03(日) 02:39:21.980123456
0□□□□□□□
1□■■□■■□
2□□□□□□□
UVの指定(単位はドットで横方向のみ)
(1-3)(4-6)
画面
■■■■
蟻が通る隙間はない
0420デフォルトの名無しさん
2013/03/03(日) 02:49:17.600 1 2 3 4 5 6 7
|□|■|■|□|■|■|□|
なんで
UVの指定(単位はドットで横方向のみ)
(1-3)(4-6)
ってなる
0421デフォルトの名無しさん
2013/03/03(日) 02:52:28.600 1 2 3 4 5 6 7
|□|■|■|□|■|■|□|
スレ汚しスマソ
0422デフォルトの名無しさん
2013/03/03(日) 03:12:44.17(0.5, 0.5)-(31.5, 31.5)をglTexCoord, glVertexすればいい話ではないのかな?
0423デフォルトの名無しさん
2013/03/03(日) 08:38:19.46その絵が書けるならもう分かってるんだろ
ピクセルの中心位置は整数座標にはないんだよ
0424デフォルトの名無しさん
2013/03/03(日) 10:27:55.540425393
2013/03/03(日) 12:21:49.16前提として、こういう画像があって、4番のみ表示したい。拡大、リニア補間で。
http://iup.2ch-library.com/i/i0865783-1362269931.png
何も考えずにやると、このように隣のキャラクタの色が混じってしまう(上端、左端)
http://iup.2ch-library.com/i/i0865784-1362269931.png
対策として0.5ずらすと、混じらなくはなるけど、端の黄色線が期待より細くなってしまう。
http://iup.2ch-library.com/i/i0865785-1362269931.png
自分としては、それは嫌だったので、0.5ずらすのではなく、
元画像でキャラごとに1ドット空けることで回避することにします(これが期待値)
http://iup.2ch-library.com/i/i0865786-1362269931.png
0426デフォルトの名無しさん
2013/03/03(日) 13:19:28.070427デフォルトの名無しさん
2013/03/03(日) 15:21:20.600428デフォルトの名無しさん
2013/03/03(日) 16:11:20.76> 元画像でキャラごとに1ドット空けることで回避することにします(これが期待値)
さらに言うと、空けた1ドットをこの場合は黄色で書いておかないと
縁が薄く黒ずんだりする。
0429デフォルトの名無しさん
2013/03/04(月) 13:48:41.40glu.h とか glaux.h とか glut.h とか glfw.h とか使いたくない感じです。
やっぱり NeHe あたり?
0430デフォルトの名無しさん
2013/03/04(月) 17:56:12.35OpenGLの勉強がしたいのならglutを使わない理由がない
もっとローレベルのウィンドウ作ってOpenGLコンテキスト作りたいだけなら
適当にその辺のドキュメントを読め
0431デフォルトの名無しさん
2013/03/04(月) 21:32:28.13DirectX使えばOpunGLが糞だと分かる
0432デフォルトの名無しさん
2013/03/04(月) 21:35:12.58レイヤ違い&スレ違い&キチガイ
去れ
0433デフォルトの名無しさん
2013/03/05(火) 00:35:12.23AndroidやアップルのOSにも採用されてるはずだわ
0434デフォルトの名無しさん
2013/03/05(火) 00:41:39.24DirectXが素晴らしいのかどうかは置いといて
0435デフォルトの名無しさん
2013/03/05(火) 07:53:26.17但しOpenGLは産廃レベル
0436デフォルトの名無しさん
2013/03/05(火) 08:51:04.96今の4.2系列はかなりマシだぞ
0437デフォルトの名無しさん
2013/03/05(火) 14:26:26.12demo の64kとかを作るために容量削ろうと思ってるんですが、
初めはglut込みで勉強して、
後から使わないように変更するって方法がよさそうですかね?
0438デフォルトの名無しさん
2013/03/05(火) 21:09:38.93OpenGLだのDirectXだのなんて、しょせんは光の「現実」をまるで無視したごまかしだからね
0439デフォルトの名無しさん
2013/03/05(火) 21:18:19.37もうリアルタイムでできる時代なのかぁ
0440デフォルトの名無しさん
2013/03/05(火) 21:53:38.610441デフォルトの名無しさん
2013/03/05(火) 22:47:07.26フォトンマッピングとか言えばいいのか?
0442デフォルトの名無しさん
2013/03/05(火) 22:51:34.600443デフォルトの名無しさん
2013/03/05(火) 22:57:33.74>>441 の言うフォトンマッピングでもいいけど。
まだまだとても現実的な時間でシミュレートできるとは思えん。
もちろん OpenGL や DirectX などが普通にリアルタイムで処理している
光の「現実」をまるで無視したごまかし映像より良く見えないと意味が無いし。
0444デフォルトの名無しさん
2013/03/05(火) 23:00:49.400445デフォルトの名無しさん
2013/03/05(火) 23:01:55.91量子力学に弱いならもうそれ以上はやめた方がいい
フォトンマッピングじゃ二重スリットすら現実に沿ってレンダリング出来ないだろ
0446デフォルトの名無しさん
2013/03/05(火) 23:06:22.62BLock Image Transferの略だったのか。今知った
0447デフォルトの名無しさん
2013/03/05(火) 23:22:43.14よくあるのはBltでBLock Transferの略っていうのだけど
0448デフォルトの名無しさん
2013/03/06(水) 10:16:46.67全く同意
民主党ですら政権とれたくらいだし
広告代理店とつるんで宣伝する能力の方が大きい
要はステマ
0449デフォルトの名無しさん
2013/03/10(日) 02:25:43.78でも日常的な情景のほとんどは光線光学でリアルに表現できるし、分散や干渉、回折のような波動光学的エフェクトもモデル化次第である程度は表現可能。
0450デフォルトの名無しさん
2013/03/10(日) 09:43:55.260451デフォルトの名無しさん
2013/03/10(日) 10:39:14.840452デフォルトの名無しさん
2013/03/10(日) 11:28:28.280453デフォルトの名無しさん
2013/03/10(日) 12:22:45.56強いて言えばルミネセンスにおけるエネルギー変換で関係するくらい?
いずれにしてもOpenGLがカバーする範疇でないし
GPGPUとしてシミュレートするにしても
当分物理モデルで頑張るよりビヘイビアモデルのほうが
「それらしい」結果が得られるのは間違いない
0454デフォルトの名無しさん
2013/03/10(日) 12:41:00.870455デフォルトの名無しさん
2013/03/10(日) 14:17:26.50非ユークリッド空間(リーマン幾何学?)を扱うところから議論しないといけないんでね?
空間が歪むような質量と日常的な物体の質量を
単精度で同時に扱うのは工夫が要るだろうし
最終的な可視化部分以外でOpenGLを使うメリットはないわな
0456デフォルトの名無しさん
2013/03/13(水) 17:17:20.900457デフォルトの名無しさん
2013/03/13(水) 17:28:56.600458デフォルトの名無しさん
2013/03/14(木) 16:17:17.27必要な配列の大きさの分mallocするまでROMな^^
0459デフォルトの名無しさん
2013/03/14(木) 20:24:37.12あの価格で、Teslaに近い倍精度浮動小数点演算性能を持っているところが個人的にイイ。
0460デフォルトの名無しさん
2013/03/15(金) 18:50:17.88しかも日常的なものなら光速も重力も殆ど影響しないという
0461デフォルトの名無しさん
2013/03/15(金) 19:14:15.830462デフォルトの名無しさん
2013/03/15(金) 19:53:15.190463デフォルトの名無しさん
2013/03/15(金) 19:54:26.510464デフォルトの名無しさん
2013/03/15(金) 20:36:33.10俺が高校生だった時は、俺以外はみんな普通にセックスしてたぞ
0465デフォルトの名無しさん
2013/03/15(金) 21:33:10.91ホモですか?
0466デフォルトの名無しさん
2013/03/15(金) 23:02:49.460467デフォルトの名無しさん
2013/03/16(土) 04:22:52.610468デフォルトの名無しさん
2013/03/17(日) 21:37:27.570469デフォルトの名無しさん
2013/03/17(日) 21:42:34.940470デフォルトの名無しさん
2013/03/17(日) 21:54:47.310471デフォルトの名無しさん
2013/03/17(日) 22:39:27.720472デフォルトの名無しさん
2013/03/23(土) 15:06:13.96位相情報をもたせたフォトンを使ったフォトンマッピングの拡張って普通にありますよね
0473デフォルトの名無しさん
2013/03/23(土) 18:31:01.79二重スリットって結局回折干渉の効果が必要になると思うんだけど
位相情報をもたせたフォトンとやらはどのようにそれを実現するの?
その手法知らないからペーパー教えて。
0474デフォルトの名無しさん
2013/03/23(土) 19:15:40.780475デフォルトの名無しさん
2013/03/23(土) 20:06:52.73だがスレチは帰れ。
久しぶりにレス数増えたと思ったらこれだよ、まともな話題をくれ!
0476デフォルトの名無しさん
2013/03/23(土) 22:09:16.120477デフォルトの名無しさん
2013/03/24(日) 01:29:10.930478デフォルトの名無しさん
2013/03/24(日) 01:35:27.480479デフォルトの名無しさん
2013/03/24(日) 09:30:39.29nvidiaのカードでC#(OpenTK)でトランスフォーム フィードバック バッファーを使おうとすると
varying変数名が必ず文字化けして使えないんだけどどうにか直せないか
コードそのままにatiのカードに取り替えるとちゃんと機能する
数年前からずっとこの調子で早く直せよ糞VIDIA
0480デフォルトの名無しさん
2013/03/24(日) 12:11:40.83上品にfuckinvidiaと呼びなさい
0481デフォルトの名無しさん
2013/03/24(日) 19:08:21.40http://www.opentk.com/node/1389
次善策はあるみたいね。
0482479
2013/03/24(日) 22:57:47.95どのみちnVIDIAだけの問題だから打つ手はないと思われ
0483デフォルトの名無しさん
2013/03/25(月) 00:06:42.630484デフォルトの名無しさん
2013/03/25(月) 00:46:58.09http://www.4gamer.net/games/107/G010729/20130324001/
0485デフォルトの名無しさん
2013/03/25(月) 00:51:41.900486デフォルトの名無しさん
2013/03/25(月) 01:07:45.330487デフォルトの名無しさん
2013/03/25(月) 01:15:13.570488デフォルトの名無しさん
2013/03/25(月) 08:45:34.350489デフォルトの名無しさん
2013/03/25(月) 09:27:05.550490デフォルトの名無しさん
2013/03/25(月) 19:27:51.910491デフォルトの名無しさん
2013/03/25(月) 20:41:19.230492デフォルトの名無しさん
2013/03/25(月) 22:35:26.520493デフォルトの名無しさん
2013/03/25(月) 22:53:04.110494デフォルトの名無しさん
2013/03/27(水) 13:43:55.09C#で書けてしまうという夢のようなオープンソースのフレームワークである。
http://monobook.org/wiki/SL_Sharp
0495デフォルトの名無しさん
2013/03/27(水) 22:37:38.80誰かもっと詳しい情報持ってない?
0496デフォルトの名無しさん
2013/03/28(木) 01:38:56.350497デフォルトの名無しさん
2013/03/28(木) 01:45:11.340498デフォルトの名無しさん
2013/03/28(木) 09:10:56.55GLSLは構造体とか配列の扱いがファッキンなのが良くない
0499デフォルトの名無しさん
2013/03/28(木) 09:34:16.13暇があったとしてもとっくに他のコミュニティに移動してる
こんな匿名の叩き煽りが日常茶飯事で自分にメリットが薄いようなところは
最高の頭脳でなくともまともな人間でもさっさと去るよ
他にコミュニティがない10年前なら最高の頭脳もいたかも知れないが、
いつの間にかいなくなって今ではその幻想だけが残ってる
最高の頭脳持ってる奴は他のコミュニティに行っても入っていけるから困らなかっただろう
そしてそういったコミュニティで相手にされない奴が集まってるのが2ch
0500デフォルトの名無しさん
2013/03/28(木) 12:03:06.550501デフォルトの名無しさん
2013/03/29(金) 17:00:41.68DirectXとOpenGL両対応する場合には必要なんでない?
0502デフォルトの名無しさん
2013/03/29(金) 19:17:43.040503デフォルトの名無しさん
2013/03/29(金) 21:51:33.67お前それLinuxでも言えんの?
0504デフォルトの名無しさん
2013/03/29(金) 22:32:11.230505デフォルトの名無しさん
2013/03/30(土) 11:39:41.510506デフォルトの名無しさん
2013/03/30(土) 14:37:18.27http://www.amazon.co.jp/dp/4862462014/
原書から10ヶ月も経たずして翻訳された
0507デフォルトの名無しさん
2013/03/30(土) 16:25:23.830508デフォルトの名無しさん
2013/03/30(土) 18:23:12.10ただし¥13,650
0509デフォルトの名無しさん
2013/03/30(土) 22:47:36.030510デフォルトの名無しさん
2013/03/30(土) 23:03:33.56日本語訳が酷かった
0511デフォルトの名無しさん
2013/03/31(日) 01:04:49.40危うく日本語版買いそうだった
ありがと、原書の方を買うわ
0512デフォルトの名無しさん
2013/03/31(日) 04:01:14.22ボッタ栗
0513デフォルトの名無しさん
2013/03/31(日) 10:58:44.090514デフォルトの名無しさん
2013/03/31(日) 15:33:02.250515デフォルトの名無しさん
2013/03/31(日) 22:38:23.59やっぱりテクスチャに予め文字を描いておいて、
それを植字する感じで1文字ずつレンダリングしていくしかない?
レンダリング解像度が決め打ちならいいんだけど、
解像度を何種類か用意するなら、文字テクスチャも
その種類分だけ用意しないといけないんだよね?
[環境]
OpenGL 4.0 以降
0517デフォルトの名無しさん
2013/03/31(日) 23:11:01.20少し荒れて良いなら一番大きく書いた物を縮小でも良し
0518デフォルトの名無しさん
2013/04/01(月) 01:18:21.27内容を変更しないフレーム分は数えるなよ。
0519515
2013/04/01(月) 20:47:01.97つまり、予め文字テクスチャに使うイメージを解像度分用意しておくのではなく、
ゲームが立ち上がってからフォント系 API なんかを使って
テクスチャに必要な分だけ文字を描くという事?。
後は、そのテクスチャを使って植字をするようなテキストを描画し、
解像度が切り替わったら、また文字テクスチャを作り直す、と。
>>518
オンラインゲームを作ってる。
ゲーム内で文字をレンダリングする機会は色々あるけど、
一番高頻度になる可能性があるのはチャット機能。
今のところプレーヤーが1行ずつメッセージを送る仕組みになってる。
プレーヤーがコピペ機能を使ってメッセージを書き込みまくれば、
秒間数回は更新されるかも知れん。
(更新頻度の制限を設ける事も検討中)
0520デフォルトの名無しさん
2013/04/01(月) 21:19:26.440521デフォルトの名無しさん
2013/04/01(月) 21:23:42.55自分が無能なのを理解できずに遅い遅いと騒いでいたせいだ。
必要最低限の内容を更新するだけなら、ハイビジョン動画を再生できるこの時代では何の影響も出ない。
0523515
2013/04/01(月) 21:27:34.63更新せずレスしてしまった。
> 必要最低限の内容を更新するだけなら、ハイビジョン動画を再生できるこの時代では何の影響も出ない。
わかった、ありがと。
でも、必要以上に嫌みっぽいレスは正直嫌いだ
0524デフォルトの名無しさん
2013/04/02(火) 20:55:02.290525デフォルトの名無しさん
2013/04/02(火) 21:04:54.780526デフォルトの名無しさん
2013/04/04(木) 19:21:24.65ワクテカ。
0527デフォルトの名無しさん
2013/04/05(金) 19:25:01.820528デフォルトの名無しさん
2013/04/05(金) 19:30:23.530529デフォルトの名無しさん
2013/04/06(土) 02:15:57.230530デフォルトの名無しさん
2013/04/06(土) 10:37:36.640531デフォルトの名無しさん
2013/04/06(土) 12:06:34.50IEのみ対応ですね
0532デフォルトの名無しさん
2013/04/06(土) 13:07:19.08これからはOpenGLの時代だよ。
0533デフォルトの名無しさん
2013/04/06(土) 17:14:40.61使えるシェーダーのデフォルトがIESL(HLSLの制限バージョン)になっているらしいという点。
レジストリの変更でGLSLも有効にできるらしいが、どうなることやら。
デフォルトがIESLだったら大ブーイングだろうな。
0534デフォルトの名無しさん
2013/04/06(土) 20:04:00.31OpenGL+何かとDirextXを比較するなら分かるがカバーするレイヤが違うから
0535デフォルトの名無しさん
2013/04/06(土) 20:07:24.920536デフォルトの名無しさん
2013/04/06(土) 20:32:04.070537デフォルトの名無しさん
2013/04/06(土) 21:55:58.880538デフォルトの名無しさん
2013/04/06(土) 23:11:52.610539デフォルトの名無しさん
2013/04/07(日) 00:50:19.75どうせMSが独自規格に走ろうと上位のレイヤが隠蔽するよ
出来ること出来ないことの多くはハードウェアで決まっちゃうんだし
0540デフォルトの名無しさん
2013/04/07(日) 12:36:16.810541デフォルトの名無しさん
2013/04/07(日) 15:06:28.77Direct3D10で2007年、OpenGL3.xが2008年。
どう見ても後追いなんだが。
0542デフォルトの名無しさん
2013/04/07(日) 15:19:19.81よく憶えてないけど
少なくとも Direct3D では独自の拡張機能は作れん
0543デフォルトの名無しさん
2013/04/07(日) 15:28:58.980544デフォルトの名無しさん
2013/04/07(日) 16:28:52.690545デフォルトの名無しさん
2013/04/07(日) 18:27:07.93その中で、これは良いと認められたものがクロノスによって統合される
0546デフォルトの名無しさん
2013/04/07(日) 18:42:13.82メーカー独自拡張があるのとどう違うんだって話
結局統一なんてできないんだから
だったらメーカー独自拡張自由に追加できるようにしたほうが良い
0547デフォルトの名無しさん
2013/04/07(日) 18:52:50.37すまん、実は全く知らん
0548デフォルトの名無しさん
2013/04/07(日) 19:19:21.81OpenGLがDirectXの機能を部分的に追い越してきたのは、
ごくつい最近の話だからね。
それまでは確かに後追いだった。
最近は状況の変化が特に激しいから、今後の情勢は予測しづらいな。
0549デフォルトの名無しさん
2013/04/07(日) 19:54:13.08OpenGLは隠れ家的な安らぎがあった
メジャーなOpenGLなんてOpenGLじゃないただの産業廃棄物だ
0550デフォルトの名無しさん
2013/04/07(日) 20:58:35.42SiliconGraphicsのグラフィックスワークステーションの中でバリバリ活躍していたMIPSも
気がつけばモバイルGPUのPowerVRの会社に買われたと知ったときは流石に遠い目になった。
0551デフォルトの名無しさん
2013/04/07(日) 21:24:35.20あぁわかる
たとえば、自分だけが知ってる超マイナーなはずだった歌手が、
ここのところバラエティに出たり紅白出ちゃったりした時の心境だろ
0552デフォルトの名無しさん
2013/04/07(日) 23:38:14.370553デフォルトの名無しさん
2013/04/08(月) 00:21:15.38その世代にあった使い方を強制してくれるからいいと思うけどね。
0554デフォルトの名無しさん
2013/04/08(月) 00:56:15.960555デフォルトの名無しさん
2013/04/08(月) 17:55:19.44DirectXが廃れた原因の一つがそれ。
ユーザーがついていけなくなる可能性大。
今のやり方でいいよ。
0556デフォルトの名無しさん
2013/04/08(月) 22:28:01.04固定パイプラインがなくすような改悪ついていけないんだが…
0557デフォルトの名無しさん
2013/04/08(月) 22:38:12.030558デフォルトの名無しさん
2013/04/08(月) 23:08:51.20互換性のないプログラムになるじゃん
何も表示されませんでしたって言われた場合にサポート大変じゃん
0559デフォルトの名無しさん
2013/04/08(月) 23:41:56.14いまどきのグラボでも固定機能が残ってるバージョンのOpenGLが使えないわけじゃないんだから、それを使えばOKと素人考えでは思うのだけども。
3.0以降のGLの機能使いつつ、シェーダを使ってリッチな表示をしたいが、あんまりコードの変更なしに古いOpenGLにも対応させたい、みたいな場合に
コストが余計にかかるってこと?
固定機能使ったコードを3.0以降に対応させるのは大変ってのはわかるけど、それはちょっと違う問題だよね。
固定機能をなくす改悪がついていけないってよりは、3.0まで対応してないグラボ以外を排除するかどうかところで決まってくるかと思うんだが。
0560デフォルトの名無しさん
2013/04/09(火) 00:27:33.03お金のない研究室ではWin95/NT機とか1.1しか使えないとこもまだまだ現役だし
ネジとか工業製品の3次元形状を表示するだけなら固定パイプラインで十分
古いPCを全部爆破出来ればいいのだけど
0561デフォルトの名無しさん
2013/04/09(火) 00:38:53.75固定機能があるかどうかは本質ではないじゃん。
0562デフォルトの名無しさん
2013/04/09(火) 00:52:23.74あえてサポートする必要がある古い環境を切り捨てて
新しい機能使うなんて本末転倒もいいとこ
1.1は固定機能のみでシェーダ対応してないのは知らないのかな
0563デフォルトの名無しさん
2013/04/09(火) 01:19:29.70自分が言いたいのは、新しいOpenGLが使えない理由は、
固定機能がなくなったという改悪が起こったからではなくて、新しいOpenGLに対応してない環境があって、それをサポートしないといけないからでしょ?ってこと。
仮にOpenGL3.0以降で固定機能がなくなるような「改悪」がなかったとしても、OpenGL1.1の環境をサポートしなくちゃならないならどっちみちOpenGL3.0は使えず、
OpenGL1.1でプログラムを書かないといけないよね。それは固定機能の有無とは関係ないということ。
0564デフォルトの名無しさん
2013/04/09(火) 01:32:23.630565デフォルトの名無しさん
2013/04/09(火) 02:05:48.95入門が大変になったなあ、とは思う。まあ、3.1以降の対応が必要になったら考えればいいだけの話だけどね。
多分、3.1以降の機能使いたくなるほど複雑なことやってたら、固定機能の代わりのものを用意するのは手間がかかるだけでそう難しくないことだとはおもうけど。
自分の場合は、iOSでOpenGL ES2.0を触らなくちゃいけなくなって、固定機能はないわ、gl_PointSizeを自前でちゃんと設定しないと点も描画できないわ、
glBeginは使えないわで覚えることがいきなりたくさんあったので、ちょっと敷居高いな、と思った。固定機能程度のことをするのは、ちょっと試行錯誤したら
できるようにはなったんだけどさ。
0566デフォルトの名無しさん
2013/04/09(火) 07:06:08.370567デフォルトの名無しさん
2013/04/09(火) 09:11:30.48北朝鮮に期待するしかあるまい
0568デフォルトの名無しさん
2013/04/14(日) 09:21:34.25openGL(ES)でフォグの機能を使ってるんですが
カメラからの各種オブジェクトの相対的な位置で
フォグのかかり具合が決まるのではなく
オブジェクトの座標の値でのみかかり具合が決まってしまってるのですが
これをカメラからのオブジェクトの相対位置で
かかり具合が決定されるようにするにはどうしたらいいんでしょうか?
現在だと例えば、カメラとオブジェクトのz座標を同時に動かして
カメラに密着させていても、オブジェクトにフォグがかかり
不自然な状態になってしまっています。
何か設定用の関数がありますか?
0569デフォルトの名無しさん
2013/04/14(日) 13:45:42.280570デフォルトの名無しさん
2013/04/14(日) 13:50:09.85「パンにしなよ」
0571デフォルトの名無しさん
2013/04/14(日) 14:04:41.04そもそも、フォグはどうやって設定しているの?
カメラなどはどうやって設定しているの?
そういった事が分からないと、何が間違っているのか分からない。
0572─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/14(日) 14:10:48.83>現在だと例えば、カメラとオブジェクトのz座標を同時に動かして
>カメラに密着させていても、オブジェクトにフォグがかかり
距離が同じならフォグのかかり具合も同じだろw
頭がアレなのか?
0573デフォルトの名無しさん
2013/04/14(日) 15:48:37.04質問は、カメラ空間ではなくワールド空間でフォグがかかるように見える
と言いたいのではないか?
カメラにオブジェクトを密着した状態で両者を同時に動かせば、
普通ならフォグはかからない、あるいはほんのわずかしかかからないはず。
にもかかわらずオブジェクトにフォグがかかるように見える、ということかと。
頭がアレなのかどうかは知らんが。
0574─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/14(日) 16:07:32.79スクリーンショット見ないと分からないな。
0575デフォルトの名無しさん
2013/04/14(日) 16:10:52.41その通りです!
他人のライブラリを使って間接的にopenGLを使ってるので
どうにかソースを調べて問題の箇所を直すしかないですね…
調べてたら↓みたいなページに行き着きました。
ttp://asai-atsushi.blog.so-net.ne.jp/2012-04-16
続けてライブラリのソースも調べてみたいと思いますが
このような問題だとするとこれはどういう問題なのでしょうか?
0576デフォルトの名無しさん
2013/04/14(日) 16:39:43.280577デフォルトの名無しさん
2013/04/14(日) 16:57:38.11なんというかその時の設定状態で
上手くカメラの座標が反映されてないという事なのでしょうか?
0578デフォルトの名無しさん
2013/04/14(日) 17:10:32.99カメラを固定してオブジェクトのみを動かすというバッドノウハウも
0579デフォルトの名無しさん
2013/04/14(日) 17:15:00.63そうですね。
出現するオブジェクトの数は少ないので
どうしても分からない場合はそうしようと思います。
0580デフォルトの名無しさん
2013/04/14(日) 17:47:41.59lookat指定とfog指定の順番が違うとか
初学者はしょうもないとこでミスってることが多いから
質問するときはソース出さないとなんとも言えない
次スレのテンプレで質問する場合は必要最低限のコード提示必須って書こうぜ
0581デフォルトの名無しさん
2013/04/14(日) 18:03:06.53ソース出したいんですが殆どメインの部分は
ライブラリのコードで膨大にあるし
全体像がよくつかめてないまま弄ってることもあって
ちょっと直ぐには無理っぽいですね…
もうちょっと自分で頑張ってみます。
0582─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/14(日) 19:53:04.74おまえバカかw
そんなの自分でさっさとやれw
0583デフォルトの名無しさん
2013/04/14(日) 19:59:14.94変な不具合出るとやなので
>>578のやり方で今回はガマンすることにしました。
お騒がせしました!
0584─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/14(日) 20:35:32.350585デフォルトの名無しさん
2013/04/14(日) 20:36:13.370586─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/14(日) 20:38:15.540587デフォルトの名無しさん
2013/04/14(日) 20:53:20.470588─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/14(日) 21:05:04.152chなくなったら日本終了かもな(ゲラゲラ
0589デフォルトの名無しさん
2013/04/14(日) 21:24:47.48すまん、3年前にこの板で訊いた質問の答えをそのままプログラムにしたものが、
今も日本インフラを支えている。
0590─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/14(日) 21:28:48.34俺の回答を期待してるんだったら、それはやめた方がいいだろうなw
0591デフォルトの名無しさん
2013/04/14(日) 21:33:04.620592デフォルトの名無しさん
2013/04/14(日) 21:39:22.210593デフォルトの名無しさん
2013/04/28(日) 01:13:41.08サイトやマニュアルをサラっと見ても分かりませんでした・・・
0594デフォルトの名無しさん
2013/04/28(日) 10:16:55.890595デフォルトの名無しさん
2013/04/28(日) 11:31:55.510596デフォルトの名無しさん
2013/04/28(日) 11:35:16.360597デフォルトの名無しさん
2013/04/28(日) 12:22:54.540598デフォルトの名無しさん
2013/04/28(日) 12:32:24.670599デフォルトの名無しさん
2013/04/28(日) 21:57:00.890600デフォルトの名無しさん
2013/04/30(火) 02:54:33.88Display(){
f1(){
while(1){
特定キーが入力されるまで待ち状態
それ以外はキーに応じて画面が変化}
f2(){
while(1){
特定キーが入力されるまで待ち状態
それ以外はキーに応じて画面が変化}
}}}
各f()内で無限ループを使わなければキー入力を受け付けるんですが,
無限ループの際に入力待ちをすることでキー入力を受け付けるようにはできないのでしょうか?
0601デフォルトの名無しさん
2013/04/30(火) 03:22:19.030602デフォルトの名無しさん
2013/04/30(火) 12:05:50.160603デフォルトの名無しさん
2013/04/30(火) 20:35:55.77ありがとうございます.
スレッドに関して調べてやってみます.
おすすめのページがあれば教えてくださいm(_ _)m
0604デフォルトの名無しさん
2013/04/30(火) 23:13:20.85安易にスレッドを使えばいいってもんじゃない。
この場合は状態遷移で対応すべし。
0605デフォルトの名無しさん
2013/05/01(水) 01:15:21.81whileをなくし,mainの無限ループのみを用い,switchと併用して,
キー入力後に描画へ遷移するように実装しましたm(_ _)m
0606デフォルトの名無しさん
2013/05/03(金) 19:01:42.09Nvidia driver306.97 だと固定機能のV(glVertex3f, GL_VERTEX_ARRAY)が layout(binding=0) につながってるんだな。glutSolidCubeがシェーダで出力されたわ
ちなみに CCC12.10 だと GL_INVALID_OPERATION が出た
0607606
2013/05/03(金) 21:17:14.73○ layout(location=0)
0608デフォルトの名無しさん
2013/05/16(木) 10:35:52.730609デフォルトの名無しさん
2013/05/16(木) 11:10:24.790610デフォルトの名無しさん
2013/05/18(土) 14:22:42.00描画したい場合、一般的にどうするものなのでしょうか?
以前は固定機能のアルファテスト(GL_ALPHA_TEST)で
色を抜いていたんですが、ES 2.0では固定機能もなくなったので、
代わりにシェーダのdiscardで抜いてみるとやたら遅く…。
チップ(PowerVR)の開発者向けサイトにあった
パフォーマンスに関する資料にもdiscardは大幅な速度低下を
引き起こすので極力使うのを避けた方がよい、という記述がありました。
0611610
2013/05/18(土) 14:25:15.86デプス値も更新されてしまい、重ねあわせの問題が出て来てしまいます。
描画順を入れ替えて奥から順番に描画すればこの問題も回避出来ますが、
他に良い方法があるのではないかと思い、質問させてもらいました。
0612デフォルトの名無しさん
2013/05/18(土) 20:07:05.040613デフォルトの名無しさん
2013/05/18(土) 20:49:21.99ES2でどうやって使うのか答えてみろよ、無能。
0614デフォルトの名無しさん
2013/05/18(土) 21:06:58.560615デフォルトの名無しさん
2013/05/18(土) 21:17:51.020616デフォルトの名無しさん
2013/05/18(土) 22:10:34.85ダメなら奥から描画するしかないね仕方ないね
0617デフォルトの名無しさん
2013/05/19(日) 09:49:40.430618デフォルトの名無しさん
2013/05/19(日) 15:02:22.88OpneGLに移るのにSDLとGLFWだったらどっちが馴染みやすいかな?
OpenSceneGraphもちょっと気になる。QtはAndroidみたいで窮屈だね
0619デフォルトの名無しさん
2013/05/19(日) 16:40:13.12軌道修正するところから始めた方がいい。
本当は必要ないのに使わなければならないという固定観念に縛られていないか?
0620610
2013/05/19(日) 16:44:40.99>>612
残念ながらAlphaFuncはES2.0では無くなっているようです。
>>615
済みません、mixというのがよく分かりませんが
discard入れるだけで最大3倍くらい遅くなっていました。
>>616
alpha to coverageですか。
情報ありがとうございます。調べてみます。
0621デフォルトの名無しさん
2013/05/19(日) 17:34:51.36専用のステンシルバッファを作って、
以降それでマスクすればいい。
0622デフォルトの名無しさん
2013/05/19(日) 17:46:25.760623610
2013/05/19(日) 18:19:05.76>>621
確かにステンシルという手もありますね。
テクスチャ毎のステンシルバッファ作成が少しネックですが・・・。
>>622
gl_FragDepthは使った事がありませんでした。
なるほど、アルファが0のフラグメントのデプスを書き換えれば
デプステストで抜けるという事ですね。今度試してみます。
0624デフォルトの名無しさん
2013/05/20(月) 21:15:30.820625デフォルトの名無しさん
2013/05/20(月) 23:35:15.96たとえば、500×500の画面に、500×500の四角を表示するとします。
最初は{0, 0}〜{500,500}ですが、zの値を変えていくと
ウィンドウ内に実際に書かれている四角は{25,25}〜{475,475}、{100,100}〜{400,400}……と、
だんだん小さくなっていきますよね。
この変換後の座標を調べる方法があったら、教えていただけないでしょうか。
0626デフォルトの名無しさん
2013/05/21(火) 00:21:01.97ダメならオブジェクト座標から順番に座標変換してってウィンドウ座標求める。
座標変換の仕方はググるか親切な>>626に教えてもらってね☆
0627デフォルトの名無しさん
2013/05/21(火) 00:31:20.34という訳で簡単に書くと、オブジェクト座標にModelviewMatrixかけて
ProjectionMatrixかけてwで割ってビューポート変換すればウィンドウ座標になる・・・はず。
0628デフォルトの名無しさん
2013/05/21(火) 00:58:11.280629デフォルトの名無しさん
2013/05/21(火) 03:35:33.39ここら辺読むと良いよ
0630デフォルトの名無しさん
2013/05/21(火) 07:05:43.93マルチレンダリングして必要な情報をとれば無駄が発生しない。
0631625
2013/05/21(火) 17:10:21.02リンクアドレスは開いた瞬間くらっときてしまいましたが、
がんばって読んでみます。
ありがとうございました。
0632デフォルトの名無しさん
2013/05/22(水) 12:10:22.79隠面消去が失敗する原因てどんなものが考えられますか?
・GL_DEPTH_TESTは有効化した
・デプスバッファはglFramebufferRenderbufferに渡した
・glRenderbufferStorageの際のwidth, heightも正しい
・カリングはオフにした
・glClearの際にデプスバッファもクリアしている
という状態で、失敗する理由がこれ以上思い当たりません。
なにとぞよろしくお願いします。
0633デフォルトの名無しさん
2013/05/22(水) 12:16:08.690634デフォルトの名無しさん
2013/05/22(水) 12:16:40.180635デフォルトの名無しさん
2013/05/22(水) 14:29:17.38右回り左回りを混ぜてる
0636デフォルトの名無しさん
2013/05/22(水) 21:39:55.62glCheckFramebufferStatusでGL_FRAMEBUFFER_COMPLETEがちゃんと帰って来てる?
0637デフォルトの名無しさん
2013/05/23(木) 12:50:34.36632の時点では、z座標を無視して描画した順に上書きされてしまう問題が出ていました。
これは単純ミスでした。(depthバッファを渡すところでcolorバッファを渡していました)
しかし、このミスを直したところ今度は何も表示されなくなりました。
glCheckFramebufferStatusは問題ないようなのですが。
右回り左回りというのを調べてみます。
0638デフォルトの名無しさん
2013/05/23(木) 13:18:38.060639デフォルトの名無しさん
2013/05/23(木) 13:20:47.33{
glGenFramebuffers( 1, &framebuff );
glBindFramebuffer( GL_FRAMEBUFFER, framebuff );
}
{
glGenRenderbuffers( 1, &colorbuff );
glBindRenderbuffer( GL_RENDERBUFFER, colorbuff );
}
{
[ self.mpGLContext renderbufferStorage:GL_RENDERBUFFER fromDrawable:( CAEAGLLayer* )self.layer ];
glFramebufferRenderbuffer( GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorbuff );
}
{
GLint framebufferWidth, framebufferHeight;
glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &framebufferWidth);
glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &framebufferHeight);
glGenRenderbuffers( 1, &depthbuff );
glBindRenderbuffer( GL_RENDERBUFFER, depthbuff );
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, framebufferWidth, framebufferHeight);
glFramebufferRenderbuffer( GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthbuff );
//glFramebufferRenderbuffer( GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, depthbuff );
}
if ( glCheckFramebufferStatus( GL_FRAMEBUFFER ) != GL_FRAMEBUFFER_COMPLETE ) ( 省略 )
0640デフォルトの名無しさん
2013/05/23(木) 13:22:26.340641デフォルトの名無しさん
2013/05/23(木) 17:28:25.26表示できるようになってからまたおいで
0642デフォルトの名無しさん
2013/05/23(木) 17:44:30.13省略したところはただのデバッグ文です。
文字数が多すぎて書き込めなかったので。
デプスバッファを有効にしなければ普通に表示されます。
サンプルのプロジェクトでデプスバッファを有効にして動いているものがあり、
それのバッファ設定の箇所をそのまま持ってきても動かなくなるので、
どこかほかの場所に原因があるようです。
ほかに原因になりそうなところが思い当たらないんですが……
右回り左回りというのは、関係なかったみたいです。
0643デフォルトの名無しさん
2013/05/23(木) 17:57:09.92GL_DEPTH_COMPONENT32 にしてみたら
0644デフォルトの名無しさん
2013/06/02(日) 18:12:43.44わざわざ機能としてあるってことは、最適化されてるとかそういうのでしょうか?
それともただ単に、Cだとスタック作るのがちょっとめんどくさいから用意してくれてるんでしょうか
0645デフォルトの名無しさん
2013/06/02(日) 19:17:49.81たぶん、最適化どうのこうのより、その API を作るにあたって基にした
3D オブジェクトを扱う考え方や思想が反映されているのだと思う。
0646デフォルトの名無しさん
2013/06/02(日) 21:21:51.74この10年いったい何をして生きてきたんだろう?
0647デフォルトの名無しさん
2013/06/02(日) 21:38:59.810648デフォルトの名無しさん
2013/06/03(月) 19:47:19.840649デフォルトの名無しさん
2013/06/03(月) 20:59:26.180650デフォルトの名無しさん
2013/06/03(月) 21:39:51.68入門書書いて金稼いでる奴らにとってはネタの宝庫だと思うんだがなぁ
0651デフォルトの名無しさん
2013/06/03(月) 22:15:45.210652デフォルトの名無しさん
2013/06/03(月) 23:55:25.86そうなるとOpenGL本ではなく、スマートフォンのプログラム本になる。
で、現在に至る。
0653デフォルトの名無しさん
2013/06/04(火) 02:18:54.290654デフォルトの名無しさん
2013/06/04(火) 07:01:59.62モバイルGPUも性能が高くなって、これからはフルOpenGLを実装できるようになってきたかららしいけど。
0655デフォルトの名無しさん
2013/06/04(火) 21:17:50.51ESの存在価値はほとんど無くなってしまった。
すでにCore2時代のIntelのオンボードレベルなら超えてしまっている。
0656デフォルトの名無しさん
2013/06/05(水) 00:12:24.52モバイルには固定パイプラインは実装されないだろうし
0657デフォルトの名無しさん
2013/06/05(水) 07:02:35.490658デフォルトの名無しさん
2013/06/06(木) 06:38:22.04かもね。だから、いわゆる固定機能を除いたCore Profileだけの実装になるかもしれない。
それでもESでないOpenGLがモバイルに載る事を期待しちゃう俺ガイル。
あとWebGLもそうなってほしい。
0659デフォルトの名無しさん
2013/06/06(木) 07:05:13.22本当にどうしようも無い馬鹿だな。
0660デフォルトの名無しさん
2013/06/06(木) 07:08:34.07もう恥ずかしいから、恥の上塗りはやめた方がいいぞ。
0661デフォルトの名無しさん
2013/06/07(金) 03:02:46.29ハードウェアの実装(トランジスタ)としてはない、という意味でいいたかったんじゃまいか。
フットプリントやコストのかねあいから、モバイルではシェーダーハードウェアで固定パイプラインを模擬している気がするけど、どうなん?
ごめん。詳しくないから想像で言ってるが。
0662デフォルトの名無しさん
2013/06/07(金) 07:08:39.42PCのビデオカードたって同じような状態なんだし。
結局のところ「同じにはならんよ」という意味が全く不明。
0663デフォルトの名無しさん
2013/06/08(土) 01:09:22.300664デフォルトの名無しさん
2013/06/08(土) 05:24:02.71OpenGL ES 2.0には固定パイプラインは存在しない
シェーダパイプラインしかない
0665デフォルトの名無しさん
2013/06/08(土) 07:06:08.40ES1では固定機能が使えるから、固定機能が理由で統合に支障が出ることはあり得ないという話をしているのに、
突然ES2の話を始めるとは、とんでもないアスペルガーだな。
リアルでも周りから、突然何を言っているんだこいつという反応を返されることが多いだろう。
0666デフォルトの名無しさん
2013/06/08(土) 07:21:55.760667デフォルトの名無しさん
2013/06/08(土) 13:26:34.93突然何を言ってるんだ?
OpenGLは既に固定パイプラインは必須機能ではなくなっているから
同様に固定パイプラインを廃したOpenGL ES2.0以降とは統合しやすいに決まってるだろ
OpenGL 3.1以降でも固定パイプライン必須だったらモバイルはGLESのままだっただろうな
0668デフォルトの名無しさん
2013/06/08(土) 14:00:32.62>OpenGL 3.1以降でも固定パイプライン必須だったらモバイルはGLESのままだっただろうな
いまだにESのままなんだが、いったい何の話をしているんだ?
統合の話もこれからされるかもしれないと言うだけで、
現時点で統合が明確になっているわけでも何でも無いんだが、
どれだけ知ったかぶりをすれば気が済むんだ?
0669デフォルトの名無しさん
2013/06/08(土) 14:05:25.41知らないなら余計なことを言わなければいいのに。
0670デフォルトの名無しさん
2013/06/08(土) 15:49:49.010671デフォルトの名無しさん
2013/06/08(土) 17:41:47.00>モバイルには固定パイプラインは実装されないだろうし
これの弁解を聞こうか。
知ったか以外になにかあるんだろう?
0672デフォルトの名無しさん
2013/06/08(土) 18:00:01.13>OpenGL 3.1以降でも固定パイプライン必須だったらモバイルはGLESのままだっただろうな
未だに統合されたわけでも何でも無いのに、いつの間にか「ESのまま」が過去形にされている謎のセリフ。
未来人じゃなければ、ただの知ったかだ。
0673デフォルトの名無しさん
2013/06/08(土) 18:08:24.200674デフォルトの名無しさん
2013/06/08(土) 18:25:16.100675デフォルトの名無しさん
2013/06/08(土) 18:47:00.70スルーしてやれよ。
0676デフォルトの名無しさん
2013/06/08(土) 18:55:20.300677デフォルトの名無しさん
2013/06/08(土) 19:19:04.11プログラム書く側からしてみればあんまり関係ないな
0678デフォルトの名無しさん
2013/06/08(土) 21:21:13.59日本語サイトはほとんどver2.0? っぽい固定機能だぜぇ。
なんだろう、悔しいけど新しい参考書買って勉強したほうがええんかな。
でも正直シェーダプログラムとかあまり理解できる気がしないから、
どうせ他人が作ったシェーダのライブラリみたいなの使っちゃいそうなものだが・・・
0679デフォルトの名無しさん
2013/06/08(土) 21:28:26.85シェーダの命令自体は書き方が多少違うだけでほとんど同じだから。
0680デフォルトの名無しさん
2013/06/08(土) 21:30:13.280681デフォルトの名無しさん
2013/06/08(土) 21:42:56.37余裕で60FPSとか出せるので侮れない。
0682デフォルトの名無しさん
2013/06/08(土) 22:07:36.900683デフォルトの名無しさん
2013/06/09(日) 13:18:22.12WEBの情報があればシェーダを使うのに入門書なんて不要。
結局、意味も分からず他人の用意した数学ライブラリで演算して、
どこに表示されるのかもよく分からずにビューを作って、
描画までの流れも分からずにプログラムを作るから何も身につかないんだよ。
そういう人間は入門書なんて見ても無駄。
下手に入門書の書き方をマネすると、それ以外の書き方を一切考えなくなって、
一切応用が利かなくなる。
0684デフォルトの名無しさん
2013/06/09(日) 13:38:07.19固定機能の方で基本がしっかりしていなければシェーダー入門書なんて見ても無駄というのは、
俺も経験して身にしみているので同意だけどね。
0685デフォルトの名無しさん
2013/06/09(日) 21:34:59.02最初からシェーダで良い
時間の無駄だ
ttp://www.arcsynthesis.org/gltut/
0686デフォルトの名無しさん
2013/06/09(日) 21:52:01.55仕事でやってるわけでもあるまい
0687デフォルトの名無しさん
2013/06/09(日) 22:02:45.770688デフォルトの名無しさん
2013/06/10(月) 02:45:59.680689デフォルトの名無しさん
2013/06/14(金) 01:50:58.64UIスレッドとOpenGLスレッド分離できるようになったぞ
0690デフォルトの名無しさん
2013/06/14(金) 02:39:01.52シーングラフだったらノードをスレッドセーフにしたりすんの?
0691デフォルトの名無しさん
2013/06/14(金) 02:46:15.430692デフォルトの名無しさん
2013/06/15(土) 08:16:45.48環境はwindows7 64bit、VS2010です
当初glutを導入していたのですが、続けてfreeglutを参考サイトにしたがって導入し、ごく単純なウィンドウ表示プログラムを実行しました
そこで、リンカ関係でerrorが発生します。
ヘッダファイルのほうでリンカは自動的に繋がっているはずなのに・・・と試行錯誤していると、glut32.libを加えると無事動きました。
ヘッダは、freeglut.hだけ引いています
freeglut.libまたはglut32.lib、と書かれていますが、これは両方必要なのでしょうか?
0693デフォルトの名無しさん
2013/06/15(土) 08:27:55.59参考サイトってどこだよ
エラー文も貼れ
上記を守ってYahoo知恵袋でも行ってこい
0694デフォルトの名無しさん
2013/06/15(土) 08:36:47.88ttp://andorelseif.com/IMYGraphics/Wiki/doku.php?id=opengl:installfreeglut
ttp://charmie11.wordpress.com/2012/02/21/freeglut-for-opengl-glsl-visual-studio-2010-on-64bit/
エラー文は以下の通りです
1>GLtest.obj : error LNK2019: 未解決の外部シンボル __imp__glutMainLoop@0 が関数 _main で参照されました。
1>GLtest.obj : error LNK2019: 未解決の外部シンボル __imp__glutDisplayFunc@4 が関数 _main で参照されました。
1>GLtest.obj : error LNK2019: 未解決の外部シンボル __imp____glutInitWithExit@12 が関数 _glutInit_ATEXIT_HACK@8 で参照されました。
1>GLtest.obj : error LNK2019: 未解決の外部シンボル __imp____glutCreateWindowWithExit@8 が関数 _glutCreateWindow_ATEXIT_HACK@4 で参照されました。
1>C:\Users\Hamasaki\Documents\Visual Studio 2010\Projects\GLtest\Debug\GLtest.exe : fatal error LNK1120: 外部参照 4 が未解決です
0695デフォルトの名無しさん
2013/06/15(土) 08:55:18.08>glut32.libを加えると無事動きました。
なんのどこにどう加えたんだよ
>freeglut.libまたはglut32.lib、と書かれていますが、
どこに何が書かれてるかも分からん
>これは両方必要なのでしょうか
意味不明
日本語からやり直した方が良いよ浜崎さん
0696デフォルトの名無しさん
2013/06/15(土) 09:05:30.79申し訳ありません、freeglut.libまたはglut32.libはhttp://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html#3.2に書かれている記述でした
この記述を見る限りでは、freeglut.libまたはglut32.libのどちらかが必要というように読み取れますが、両方ともリンクコマンドラインに追加する必要があるのでしょうか?
0697デフォルトの名無しさん
2013/06/15(土) 10:20:42.330698デフォルトの名無しさん
2013/06/15(土) 13:06:33.62freeglutを使うならglut32.libは必要ない。 freeglut.h をインクルードして freeglut.libをリンクする。
0699デフォルトの名無しさん
2013/06/16(日) 21:50:11.19#pragma linkとかそういう表記がなければ、自分でリンカの追加の依存ファイルに追加しないとリンクしてもらえない。
0700デフォルトの名無しさん
2013/06/16(日) 22:05:05.14ところがglut.hや freeglut_std.h の中にpragmaが書いてあったりする
0701デフォルトの名無しさん
2013/06/17(月) 00:48:20.07だからエラー出てるんだろうけど、なんでそれが必要と吐いてんのかは知らね
0702デフォルトの名無しさん
2013/06/18(火) 14:25:53.980703デフォルトの名無しさん
2013/06/18(火) 14:40:33.09「自己解決した」と書いて原因と解決策を書かないのは
ただレスを無駄に消費する本当のクズだぞ
0704デフォルトの名無しさん
2013/06/18(火) 14:53:56.4432bit設定で生成しなおして入れなおしたところ、無事動きました
スレ汚し失礼いたしました
0705デフォルトの名無しさん
2013/06/18(火) 14:56:11.370706デフォルトの名無しさん
2013/06/20(木) 18:50:27.14もしご存知のかたがおりましたらそのサイトを教えて下さい。
よろしくお願いします。
0707デフォルトの名無しさん
2013/06/20(木) 22:22:23.270708デフォルトの名無しさん
2013/06/22(土) 23:34:21.14ありがとうございます。
ただ当方英語がわからずC++の知識及びOpenGLの知識も浅いためソースコードを見ても
理解が追いつかないところが多々あります。
もしよろしければ日本語での解説が有るところを希望しております。
0709デフォルトの名無しさん
2013/06/23(日) 01:52:16.310710デフォルトの名無しさん
2013/06/23(日) 03:04:29.59ttp://www.amazon.co.jp/dp/4862461891
0711デフォルトの名無しさん
2013/06/23(日) 03:50:24.60じゃあc++とopenglの知識か英語力付けりゃ解決じゃん
原因分かってんだからやれ
0712デフォルトの名無しさん
2013/06/23(日) 21:15:54.20返信ありがとうございます。
原因はわかっておりますが事情があり1ヶ月〜2ヶ月程度以内にある程度の成果を出す必要性があり、
その時間内ではその3つの知識を習得するのは私の能力では困難だと判断しました。
また、特にopenGLの知識をつけるという点においてサンプルコードを解説付きで読むことができるという
環境は私の考えつく限り最良の方法ですので、やはり私の読める日本語で
サンプルコードが書いてあるところを探すのが最良であると考えました。
重ね重ねにはなりますが、日本語で解説しているサイトなどご存知でしたら教えていただけると幸いです。
0713デフォルトの名無しさん
2013/06/23(日) 21:33:25.200714デフォルトの名無しさん
2013/06/23(日) 23:21:44.25とかでググれば日本語でもいろいろ出てくるだろ
0715デフォルトの名無しさん
2013/06/24(月) 22:20:34.48金払いたくないなら諦めろ
0716デフォルトの名無しさん
2013/06/24(月) 22:22:35.500717デフォルトの名無しさん
2013/06/24(月) 22:34:44.98程度によっては、今からGLSLをじっくり学んでひまわりの本のパーティクルを理解することも、
それほどだいそれた事ではないかも知れん。
0718デフォルトの名無しさん
2013/06/27(木) 12:50:29.540719デフォルトの名無しさん
2013/06/27(木) 16:47:07.420720デフォルトの名無しさん
2013/06/27(木) 18:09:20.360721デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.ANhttp://msdn.microsoft.com/ja-jp/library/ie/bg182648(v=vs.85).aspx
Three.js使ったコンテンツが動きますヨ。と書いてあるので、
互換性はそれなりに大丈夫なんじゃまいか。
一時期、シェーダーだけはGLSLじゃなくてHLSLを亜種でないと
書けないようにするんじゃないかという懸念があったが、どうやら杞憂で終わったようだ。
早くWin7向けにIE11出ないかな。
0722デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANOpenGLというのはグラフィックのチップが対応する命令ということまでは
わかったのですが、自分のPCが対応しているかどうかがどうしても
わかりません。
PCは、hpの2230sで、4GB、XPです。
ドライバなどを入れると使えるようになるのでしょうか。
0723デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANソフト板かPC初心者板か、素直に猿知恵袋とかで聞けばよろし。
0724デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0725デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANhttp://www.ozone3d.net/gpu_caps_viewer/
0726デフォルトの名無しさん
2013/07/21(日) NY:AN:NY.AN2D的に使いたい場合は上書きだけで良いんだが
0727デフォルトの名無しさん
2013/07/21(日) NY:AN:NY.AN0728デフォルトの名無しさん
2013/07/21(日) NY:AN:NY.AN0729デフォルトの名無しさん
2013/07/21(日) NY:AN:NY.ANエラーが出てるところを読み違えてた
0サイズのテクスチャーが扱えないんだな
0730デフォルトの名無しさん
2013/07/23(火) NY:AN:NY.AN0731デフォルトの名無しさん
2013/07/23(火) NY:AN:NY.AN0732デフォルトの名無しさん
2013/07/23(火) NY:AN:NY.AN0733デフォルトの名無しさん
2013/07/23(火) NY:AN:NY.AN0に初期化して必要な部分だけglTexSubImage2Dで指定したいのですが
0734デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.AN0735デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.AN初期化してない変数と同じでゴミデータが詰まっている状態
0に初期化したい部分はglTexSubImage2Dでわざわざ埋めてやらないとだめ
0736デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.AN何も考えずにglTexImage2D(0)でサイズだけ確保→glTexSubImage2Dで一部だけテクスチャー貼り付け
したらその部分以外は0っぽくなって(すくなくともアルファ値0)大丈夫かな?と思ったんだが
0737デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.ANべつにだれも困らないから
0738デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.AN0739デフォルトの名無しさん
2013/07/27(土) NY:AN:NY.AN自作のWebGLアプリを試してみたら、ちゃんと動いた。少し感動だ。
0740デフォルトの名無しさん
2013/07/27(土) NY:AN:NY.ANその状態で気が付かないままOpenGLを使用したアプリを動かすと画面が壊れたり
最悪システムがクラッシュするという事態に遭遇
ここのトップで紹介されてるglxgearsも動かすと色深度が勝手に落ちるみたいな
報告が一部であったようだけどこの問題何なんだ
0741デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANFPSを取得したいので、WM_PAINTメッセージが呼ばれたさいの描写にかかる処理時間からFPSを出していますが
上手くFPSの値を得ることができません。
glewを使ったさいの正しいFPSの取得方法を教えて下さい。
0742デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANFPS値取得は特定のフレームワークに依存するアルゴリズムではないのでスレ違いかと。
0743デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN例えばopenglを使っていなかった場合、描写に必要なデータが作られるのにかかる時間でFPSを出していますが
シェーダに描写データを作成させる場合にどこの部分を計測させると良いかがわからないです。
0744デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN0745デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN前回のSwapBuffersとの差を求めれば?
0746デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN古いオンボードGPU(GMA 4500)だと問題なく動いていた
セレクションモードって最近のGPUだと使わないほうがいい?
0747デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANGPUによって処理が遅くなるかどうかは知らんが、
トイプログラムやちょっとした実験とかならいざ知らず、
今も昔も実用的なアプリでは使わない機能だと思う。
たいていは当たり判定処理や可視判定処理のために、
ポリゴン群(や3Dオブジェクト群)をツリー構造やグリッド構造などに入れている。
そこまで環境が整備されていれば、マウスピッキングもたやすい。
わざわざセレクションモードを使うまでもない。
(こちらは、重なったポリゴンの奥の物を指すこともできるし)
0748デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0749デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN個人で作ってる物理シミュレーションの可視化アプリなんで、
パフォーマンスはあまり気にしてなかったんだ。
ぐぐってみると、カラーバックバッファを使った方法があったので
今こっちの方法で書き直してる。
0750デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANOpenGL ESのバージョンには、
1.0 1.1 2.0 3.0
がありますが、
1.0と2.0では描画スピードに差があったりするものでしょうか?
0751デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0752デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN3.0 > 2.0 > 1.1 > 1.0
の順で早いよ、そういう質問は初心者すぎ
0753750
2013/08/12(月) NY:AN:NY.ANすいません、まだOpenGL ESの勉強を始める前で、
バージョンが数種類あるみたいだからどれがいいかなと思いまして。
>>752
ありがとうございます。
0754デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANESってことはAndroidかiOSかな?
どっちも今の主流は2.0だから、2.0がお勧めだけど、最初はとっつきにくいよ。
あと、そもそも生のOpenGLを叩く必要があるの?って気も…。
0755デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANDirectXのHELみたいにソフトウェアで代用されるの?
それとも使用した時点で落ちる?
0756デフォルトの名無しさん
2013/08/14(水) NY:AN:NY.AN0757デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANPC変えてから、正しく描画されなくなりました(真っ白というかデフォルト色のまま?になる)
glutInitDisplayMode(GLUT_RGBA) → glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA)
glFlush → glutSwapBuffers
とすると、正常に描画されるみたいなんですが、原因を知りたいです
0758デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.AN落ちるというか、関数ポインタを取得するときに0が返るはず。
>>757
glutとかOpenGLのドキュメントをもっとしっかり読めば原因を突き止められると思うよ。
0759デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.AN0760デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.AN0761デフォルトの名無しさん
2013/08/16(金) NY:AN:NY.AN具体的にどのドライバの何のステートが適当なの?
0762デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANこんな感じのです。
root
/ | \
a b c
/ | \/ | \/ | \
0763デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0764デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANOpenGLでは線も描画できるので、何を描くかは
完全にアナタ次第よ。
0765デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANそこでmp3にも対応しているOpenSL ESで音を鳴らそうと思うのですがwindowライブラリーが見つけられない状態です。
どこにあるのか教えて頂けると助かります!
お願いします。
0766デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANまずはゲームスレに行ってみればいかがか?
0767デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.ANOpenSLとOpenGLは無関係なんですか?
音鳴らすのは3D出すよりハマリそうな予感ですね・・・
0768デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.AN0769デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.AN0770デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN今からはじめるならもっと良いのがあるのかな
情報量やCやpythonでopenglを扱うなら一番の選択だと思ったんだけどどうなんですか
0771デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANglutじゃ複雑な製品レベルのものは作れないよってだけだし
0772デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN0773770
2013/08/27(火) NY:AN:NY.AN0774デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.ANfreeglutなしで、openglだけで
全画面表示だけでも良いので。
0775デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0776デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0777デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0778デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN頭が悪いにもほどがある。
0779デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0780デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0781デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0782デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN教えてください。
実行環境はmingwです。
0783デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.ANOpenGLを使うにはwindowsでもlinuxでも必ずウィンドウを作らないといけない。
なのでX11が動いてないような状態でOpenGLは使えない。
でもウィンドウを非表示にしてコンソールアプリっぽくする事は可能
0784デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.ANttp://www.opengl.org/wiki/Getting_Started
0785デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN画面はリアルタイムにみえなくていいから
動画をファイルにして出力ってこともウインドーを作らないと無理ですか?
0786デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN画面に何も表示しない場合でもウィンドウハンドルかデバイスコンテクストがないと
OpenGLのコンテクストは生成できなかったはず。
というか、windows7でmingw使うならウィンドウ作るけど非表示にしておく方法で問題ないと思うけど。
コンソールアプリを作るときに
CreateWindowしてOpenGLコンテクスト作って、ウィンドウは非表示のままでOK。
0787デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN> 画面に何も表示しない場合でもウィンドウハンドルかデバイスコンテクストがないと
> OpenGLのコンテクストは生成できなかったはず。
PIXELFORMATDESCRIPTOR 構造体の dwFlags メンバ変数に PFD_DRAW_TO_BITMAP を指定して、
メモリに作ったビットマップからデバイスコンテキストを得れば良いんとちゃうの?
こんなことやったこと無いから知らんけど。
0788デフォルトの名無しさん
2013/09/03(火) 21:22:47.69c++、gtkmm3+GLXでプログラムしているのですが、glNewList で予め用意していたリストをon_draw等の描画処理関数の場所で
glCallList、glXSwapBuffersを使い書いているのですが、ウィンドウを隠す&表に出す操作をして何回か書かせると描画しなかったり
途中まで書いた状態になったりします。この動作を治したいのですが、なにかとっかかりを教えていただけると嬉しいです。
[環境]
OS: Debian(wheezy) Linux 3.2.46 i686
言語: c++ (g++ 4.7.2)
ライブラリ: gtkmm3.0、glx1.4(nvidia)
グラフィックドライバ: nvidia 304.88
[コード(一部)]
virtual bool on_draw( const Cairo::RefPtr<Cairo::Context> & cc ) {
if( glIsList(1) ) {
glCallList( 1 );
} else {
return false;
}
glXSwapBuffers(GDK_WINDOW_XDISPLAY(Glib::unwrap(get_window())), GDK_WINDOW_XID(Glib::unwrap(get_window())));
return true;
}
0789デフォルトの名無しさん
2013/09/04(水) 04:28:02.75デバイスロスト
0790デフォルトの名無しさん
2013/09/04(水) 13:10:58.640791デフォルトの名無しさん
2013/09/04(水) 14:52:23.29でも誤爆じゃないのさすがに
0792デフォルトの名無しさん
2013/09/04(水) 15:14:59.840793デフォルトの名無しさん
2013/09/04(水) 17:45:02.94あなたの好き嫌いなどこのスレではどうでもいいことでは?
詳細にごちゃごちゃ言うよりはシンプルで嫌いじゃない、という人もいるんだし。
あなたが質問者本人でしたら、すいません。
0794788
2013/09/04(水) 18:25:35.98ググってみたんだけどデバイスロストはWindows環境のものらしいから関係ないかも・・・
でもそれ以上に深い意味があるとしたら私はわからなかったよ
現象が再現するサンプル作ったけど上げ方わからないしなー
あとコンパイル環境も悪いのではと疑っています、これはDebianスレで聞いた方がいいのかな?
0795デフォルトの名無しさん
2013/09/04(水) 18:44:15.08displayList使うのをやめてみても同じ現象がおきるかどうかを調べてみて、
原因がdisplayListなら使うのを止めるのを薦める
そうで無いなら今の情報では分からないから原因を絞り込む
0796788
2013/09/04(水) 18:58:21.25リストを使うのをやめても現象が出ました orz...
どうも最初考えていたリストが原因ではないようです
絞り込みについては環境の方とあわせて悩み中です
0797デフォルトの名無しさん
2013/09/04(水) 19:17:43.26じゃなんとなくだけど、glBegin() glEnd()使ってるでしょ? glEnd()をどっかで忘れてんじゃね (根拠ないけどね)
0798デフォルトの名無しさん
2013/09/04(水) 19:24:29.92あ、glGetError()のチェックのが先かも
0799788
2013/09/04(水) 19:48:15.12予想の通りにglBegin()を使っています。
テストプログラムを確認してみましたがglEnd()の忘れはないようです。
私の思い込みもあると思いますが、一回しかglBegin()を使っていないので
現象が発生するテストプログラムでは忘れていないと思います・・・
>>796
on_drawの一番最後に以下の関数を呼び出しているのですが何も出力されませんでした。
fprintfだとダメです?
void OpenGL_errors() {
int error;
while( (error = glGetError()) != GL_NO_ERROR ) {
fprintf( stderr, "OpenGL error: %s\n", gluErrorString(error) );
}
}
0800デフォルトの名無しさん
2013/09/04(水) 19:56:16.620801788
2013/09/04(水) 20:05:36.53それは自信が無いです。色々有り難うございます。
on_realize()で一回次の関数を読んでいるだけなので・・・デストラクタでコンテキストなどの削除を行なっているのですが
行数が足りなくてこれ以上書けません。
private:
void init_glx() {
GLint glx_attrs[] = { GLX_RGBA, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_DOUBLEBUFFER, None };
xdisplay = GDK_WINDOW_XDISPLAY( Glib::unwrap( get_window() ) );
xid = GDK_WINDOW_XID( Glib::unwrap( get_window() ) );
visual = glXChooseVisual( xdisplay, DefaultScreen(xdisplay), glx_attrs );
if( !visual ) {
throw std::runtime_error( "failed glXChooseVisual." );
}
glx_context = glXCreateContext( xdisplay, visual, NULL, true );
if( !glx_context ) {
throw std::runtime_error( "failed glXCreateContext." );
}
if( !glXMakeCurrent(xdisplay, xid, glx_context) ) {
throw std::runtime_error( "failed glXMakeCurrent." );
}
}
Display *xdisplay;
unsigned long int xid;
XVisualInfo *visual;
GLXContext glx_context;
0802デフォルトの名無しさん
2013/09/04(水) 20:07:38.16を書いた者です。
正直すまんかった。
症状がDirectX9のデバイスロストと似ていたので適当な事を書いてしまいました。
LinuxでOpenGLを使った事はあまりないから大したアドバイスはできないけど・・・
1, 新しめのドライバを使ってるならGL_KHR_debugを使った方がより詳しく問題を見つけられるかも。
http://www.opengl.org/registry/specs/KHR/debug.txt
2, コンテクストを初期化したスレッドと描画しているスレッドが同じか確認。
OpenGLでマルチスレッドな事をするとうまくいかないかも。
3, ウィンドウのサイズが変わったり,隠す&表に出したときにちゃんと再描画しているか確認。
アニメーションしてて一定時間毎に描画しているなら関係無いけど。
4, displayListはver3で廃止になったので代わりにVertex Buffer objectを使う事を奨める。
古いグラボを使っているとか, まじめにOpenGL使わなくていいとかなら気にしなくていいけど。
0803788
2013/09/04(水) 21:00:15.90いえいえレス有難う御座いました。
>1
英語は苦手なので読むのに時間がかかると思いますがぼちぼち見てみます
>2
スレッドは使っていないのでこれは大丈夫かと
>3
これは微妙で、一応ウインドウが隠れた時と現れた時にon_draw()を通っていることを確認しています。
そこに描画処理を書いているつもりなのですが、実際は時々描画しなかったりしているので何か何処か
が悪いのでしょう・・・
>4
古いグラボなんです・・・消費税が上がる前にPCごと買い換える予定ですが今は
玄人志向GeForce6200A-LA128C を使っています。
Vertex Buffer object も少し見てみます。(と言っても本番は球体と直線を書かないといけないんです)
ググってちらっとみましたが難しそうですね
0804デフォルトの名無しさん
2013/09/05(木) 18:14:29.760805デフォルトの名無しさん
2013/09/05(木) 20:17:10.610806デフォルトの名無しさん
2013/09/07(土) 23:20:26.12これを使えばDirect3D版とOpenGL(ES)版の両方のプログラムを描かなくても良いかーなんて思ったが
ANGLEでもシェーダー等全てを変換出来るか分からないし
ANGLEがWindows Phoneのような他のプラットフォームに移植されるか分からないし
やはり両対応が無難かと思った
0807デフォルトの名無しさん
2013/09/09(月) 18:52:02.230808デフォルトの名無しさん
2013/09/09(月) 19:08:56.80ひまわり本をどうぞ。
http://www.borndigital.co.jp/book/2020.html
0809デフォルトの名無しさん
2013/09/10(火) 00:56:07.02WPで動くかは知らないが、ChromeのWebGLでできることはANGLEでできると思われ
シェーダは内部でHLSLに変換されるし、手動で変換するためのessl_to_hlslってツールもついてる
まあ両対応できる余裕があるならそれに越したことはないが
0810デフォルトの名無しさん
2013/09/10(火) 13:19:32.37WPにもポートされると良いな
WPではシェーダーを実行時にコンパイルする事は出来ないようなので
手動変換は必要っぽい
0811デフォルトの名無しさん
2013/09/14(土) 00:25:41.21既存のテクスチャにglTexImage2Dで異なるサイズを指定してやると、
小さいサイズでは問題なさそうなんですが、元より大きなサイズを
指定するとGL_INVALID_OPERATIONになってしまいます。
0812デフォルトの名無しさん
2013/09/14(土) 01:32:32.58描画はミップマップなりフィルタリングなりさせれば良いんじゃないのか?
画像サイズを変えたいということであれば
それはOpenGLではなく画像処理の話になってくるのでスレ違い
0813デフォルトの名無しさん
2013/09/14(土) 07:57:41.28たとえば最初1024x768でテクスチャを作って、途中からそれを1920x1080の
別のビットマップに差し替えるというようなことをしたいと思ってます。
そのビットマップをどう用意するかももちろん別の話で。
0814デフォルトの名無しさん
2013/09/14(土) 08:11:02.870815デフォルトの名無しさん
2013/09/14(土) 08:19:01.65調べてみれば?
0816デフォルトの名無しさん
2013/09/14(土) 09:05:32.04問題ありませんでした。エラーになるのは最初のサイズより大きなものに差し替える場合だけで。
質問したいのはglTexImage2Dで別のサイズのテクスチャに差し替えることがOpenGLの仕様で
認められているのかどうかと、他にテクスチャのサイズを変更する方法がないかどうかですが、
仕様上glTexImage2Dで可能なはずだということであれば、環境の問題と思ってあきらめます。
0817デフォルトの名無しさん
2013/09/14(土) 09:56:40.442のべき乗になってないんじゃね
0818デフォルトの名無しさん
2013/09/14(土) 10:19:18.670819デフォルトの名無しさん
2013/09/14(土) 10:39:42.90コードは同じで大→小はエラーが出ず、小→大の場合だけエラーになるんですが、
サイズ変更するにはどういう手順が正しいんでしょうか?
// 初回
glGenTextures
glBindTexture
glTexImage2Dで初回のサイズ指定
glTexParameterもろもろ
// 描画時
glBindTexture
glTexSubImage2DでPBOからピクセル転送
描画
// テクスチャ変更時
glBindTexture
glTexImage2D ←ここでサイズを大きくするとGL_INVALID_OPERATION
0820デフォルトの名無しさん
2013/09/14(土) 11:07:05.570821デフォルトの名無しさん
2013/09/14(土) 11:17:23.37glTexImage2D( GL_TEXTURE_2D,
0,
GL_RGBA,
width,
height,
0,
GL_RGBA,
GL_UNSIGNED_BYTE,
NULL
);
0822デフォルトの名無しさん
2013/09/14(土) 12:05:34.092のべき乗になってないんじゃね
0823デフォルトの名無しさん
2013/09/14(土) 12:31:51.780824デフォルトの名無しさん
2013/09/14(土) 13:05:02.26ドライバやドキュメントが嘘ついてることもあるので
実際に検証するってのは大事だと思う
それもその場限りの検証でなく
ユニットテストのような形で残しておけば
環境が変わっても役に立つ
0825デフォルトの名無しさん
2013/09/14(土) 14:53:40.830826デフォルトの名無しさん
2013/09/14(土) 16:39:14.660827デフォルトの名無しさん
2013/09/14(土) 19:31:35.57ここでテクスチャのサイズ変更の正しい手順を訊いてわからなければ、
そういう方向で修正しようと思っていました。
0828デフォルトの名無しさん
2013/09/14(土) 19:39:57.320829デフォルトの名無しさん
2013/09/14(土) 19:55:35.27まあ環境依存はしそうなので俺が出来たから他でもできるとは限らないが
0830デフォルトの名無しさん
2013/09/14(土) 20:37:16.18そういう操作が可能か保証されていないということがはっきりすればすっきりするんですが。
ちなみにそのことを説明しているドキュメントとかどこかにないですかね?
このへん見ても探せなくて。
http://www.opengl.org/sdk/docs/man/xhtml/glTexImage2D.xml
0831デフォルトの名無しさん
2013/09/14(土) 21:53:45.18そして、equivalentとしてglTexImage2D使った擬似コードも書いてある
これをそのまま信じるなら無理な気がする
0832デフォルトの名無しさん
2013/09/14(土) 22:02:37.50じゃあ俺のほうがコード見なおさないとイカンのか(´・ω・`)
0833デフォルトの名無しさん
2013/09/14(土) 22:14:45.27ただ、glTexStorage2Dのドキュメントにだけあえてそのように記述していてglTexImage2Dの
ドキュメントにはそのように書いてないことと、glGetTexParameterのドキュメントの
GL_TEXTURE_IMMUTABLE_FORMATの項を読む限りでは、変更できなくなるのは
glTexStorage2D特有の動作で、通常は変更できるんじゃないかなと思ったんですが。
http://www.opengl.org/sdk/docs/man/xhtml/glGetTexParameter.xml
0834デフォルトの名無しさん
2013/09/14(土) 22:29:43.40> ただ、glTexStorage2Dのドキュメントにだけあえてそのように記述していてglTexImage2Dの
> ドキュメントにはそのように書いてないことと
OpenGL のAPIドキュメントはそういうのが他にもあるよ。
どれかは忘れたけど、他の関数で同じようなドキュメントの不備を経験して、
このスレで質問した覚えがある。
0835デフォルトの名無しさん
2013/09/14(土) 22:40:31.600836デフォルトの名無しさん
2013/09/14(土) 22:59:03.46GLint b;
glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_IMMUTABLE_FORMAT, &b);
if(b == GL_TRUE)
で調べられるんじゃね?
と思った
0837デフォルトの名無しさん
2013/09/15(日) 08:52:21.59VRAMにどう言う手順でメモリがとられ、サイズの変更ってどういう意味かを考えれば
そう言う発想にすら至らないだろ
glTexImage2Dでテクスチャサイズの変更なんて出来ない
そう言う発想する時点で低レベルを通り越して、GLやらDXを直接触るレベルに至ってないよ
0838デフォルトの名無しさん
2013/09/15(日) 09:06:01.93で、マニュアルを全部熟読したと思え
で、その車で浜から海に突入したと思え
で、言い出してるんだ
マフラーから浸水してエンジン止まってるのに
仕様で車が海に入れないって決まっていればいいのですが…
マニュアル読んでも明記してなくって…
ってレベルだw
0839デフォルトの名無しさん
2013/09/15(日) 09:07:30.49VRAMのメモリって通常のメモリとどう違って確保されるの?
0840デフォルトの名無しさん
2013/09/15(日) 09:31:15.51あとその例えは車と海なら必ずそうなるだろうけど
すでに試したいくつかの環境では実際にサイズ変更できちゃってるからなあ
0841デフォルトの名無しさん
2013/09/15(日) 09:44:57.04それら2つの環境で正しく動くようにしたいのなら、「できない環境」に合わせればいい。
「できる環境」だけでよければ「できる環境」に合わせればいい。
それだけのことじゃないのか?
たとえ仕様に正しいことが書いてあっても実際は仕様と違っている、あるいは
仕様以上の事をやろうとして結局仕様と違う事をしてしまっているグラボやドライバなんて、
いくらでもある。
(グラフィック系に限らず世の中いくらでもある)
0842デフォルトの名無しさん
2013/09/15(日) 09:51:28.03まあ今のところさほど大規模じゃないので出来ない環境を排除する方向で動いてはいるが・・・
動かない環境をはっきり定義出来ないのがな、グラボバージョン多すぎ
0843811
2013/09/15(日) 10:45:15.41ここで訊きたかったのは、まずはその仕様の正しい解釈の方ですけどね。
そのうえで、その「正しい解釈」に基づいたプログラムが正しく動かない
環境についてどうするか、ってのはもちろんここで聞くことじゃあないです。
0844デフォルトの名無しさん
2013/09/15(日) 12:28:28.41その「正しい解釈がどういうものか」が仕様書やドキュメントには書かれていない。
どうするの?
ユーザー個人個人が自分で正しい解釈を推測するの?
0845デフォルトの名無しさん
2013/09/15(日) 12:55:02.19今回の件でどうするかといえば、もともとここで質問して自分のコードの間違いが
わかればそれを修正するし、そうでなければ回避するよう考えていました。
一般的な解は知りません。同じような問題が発生したらその都度判断することに
なるでしょう。
0846デフォルトの名無しさん
2013/09/15(日) 13:26:08.46ためしにやってみたが、うちのGeforceじゃ大きいでglTexImage2Dしてもエラーにならないんだけどな
描画する直前に乱数のサイズでglTexImage2Dしてもエラーにならない
はるか昔まだglBindTextureが無い時代だと、テクスチャ更新するたびにglTexImage2Dするしかなくて
そのときは小さいテクスチャから大きいテクスチャにTexImage2Dしてただろうし
仕様的にはできるとおもうだけど
0847デフォルトの名無しさん
2013/09/15(日) 13:30:44.13てっきりPCだと思ってたんだが違うとなるとむしろハードウェアのドキュメントを漁ったほうがいいんじゃね
0848デフォルトの名無しさん
2013/09/15(日) 16:56:43.940849デフォルトの名無しさん
2013/09/15(日) 17:36:07.91メモリの最割り当ては、glTexGenし直すって事なんだよ
glTexImage2Dはメモリ上書きで、たまたま上手く動いているケースがある
ってだけだろw
確保しているメモリ領域をポインタに
再度リークもどきで、上書き確保してみろ、より大きいサイズテクスチャは
バッファオーバーラン状態になるの理解出来ないか?
小さいサイズは既にあるメモリ領域内で、たまたま動くだけ
こんなのプログラムでメモリ触った事ある奴なら当たり前なんだけどな…
とうぜんGL使いにも当たり前
0850デフォルトの名無しさん
2013/09/15(日) 17:40:40.34エラーを返す、同じ場所を拡張する、別の場所に再割り当てして内容をコピーする、
あらゆる可能性が考えられる。
持っているリソースハンドルはVRAMの物理アドレスじゃ無いんだから。
プログラマは出来るだけ多くの実機で試して、現実にそこにある実装に従うしか無い。
0851デフォルトの名無しさん
2013/09/15(日) 17:43:11.10同じglTexGenしないで再度glTexImage2するってやってみろ
アドレスの後ろに次のテクスチャが無いから動くんじゃね?
GLの仕様とかじゃなくて、プログラムのメモリ確保の常識の問題だっつーの
これが、ゆとり世代の奴らなのかね…
0852デフォルトの名無しさん
2013/09/15(日) 17:48:52.41○○w
○○ろ
○○だっつーの
ゆとり世代云々
俺が他人にアドバイスするときは、こんな風には言えないな
ネットでもリアルでも
0853デフォルトの名無しさん
2013/09/15(日) 17:49:26.65なんでGLのVRAMの確保の仕方を勝手に決め付けちゃってるの?
実装によって異なるだろう。
>836
で調べてからDelete,Genするか決めればいいんじゃないの・
0854デフォルトの名無しさん
2013/09/15(日) 17:50:01.69メモリ確保はそのときの実装に従うべき話だし、確保の処理手順に常識なんて無いよ。
0855デフォルトの名無しさん
2013/09/15(日) 17:52:51.76って仕様に書かれてないから、出来るか出来ないか分からない
ってバカ丸出し
少しでもプログラムやメモリ確保を理解すれば
いちいちアホの発想を諭すような仕様を明記するなんてしてない
同然、出来ないに決まってるだろって話
例えば、C++で同じポインタ変数に、deleteしないで
何度もnewしたらメモリリークしてるよな?
でも動いているんです、(メモリ不足や使用アドレスを上書きしない限り、たまたま動く)
仕様にも同じポインタ変数にnewしてはいけないって明記してないんです
とか言ってるようなもんw
0856デフォルトの名無しさん
2013/09/15(日) 17:55:13.16glTexGenは一回だけ
あとは何度もglTexImage2だけ呼んで、テクスチャのサイズを変えたい
っていってるんだぞ?
0857デフォルトの名無しさん
2013/09/15(日) 17:58:35.90reallocの話を出したとたんに都合が悪いから無視、
関係ないnew/deleteでごまかす狼狽っぷりは、
他人を煽るけど自分が突っ込まれるのには弱いみたいだね。
0858デフォルトの名無しさん
2013/09/15(日) 18:00:20.46glTexImage2DのVRAM割り当ては、同じアドレスになるに決まってだろ
OpenGLはグラフィックAPIであって、ミドルウェアやライブラリじゃねーんだそ
そんな便利機能があるわけないw
つか便利機能つーか、破綻する機能だろ
そう言う発想してる時点でプログラム向いてないぞ
0859デフォルトの名無しさん
2013/09/15(日) 18:01:31.79論点をずらしてるよ
glTexImage2Dは、只のmallocだから
0860デフォルトの名無しさん
2013/09/15(日) 18:06:01.96reallocは同じアドレスになる事は、”保障してない”
たまたまドライバ依存で、動く環境あったら
環境に従うべき?
…大笑いだわw
0861デフォルトの名無しさん
2013/09/15(日) 18:07:44.22>glTexImage2DのVRAM割り当ては、同じアドレスになるに決まってだろ
規定されていないので決まっていない。
たとえばDirect3D9Ex以降なら、ロック画面を出して一度VRAMを飛ばしても、
自動的に再確保されて修復されるようになっている。
0862デフォルトの名無しさん
2013/09/15(日) 18:08:54.88なるほど、glGenTexutresもglBindTextureも無かった頃(1.0?)はglTexImage2Dで
サイズ変更できなかったわけがない、と。それは説得力ありますね。
で、>>846>>848で言われて気づいたんですが、単なるメモリ不足のセンも
考えられますね。開発環境はHD6450MでVRAMが512MBしかないんで。
まずは自分の使い方を疑っていたんで、メモリ使用量まではチェックして
ませんでした。
0863デフォルトの名無しさん
2013/09/15(日) 18:12:17.92論理アドレスを使っているんだから、自動的に再確保されたらOSの支援でも無ければ戻ってくるアドレスは変わるのは当然。
なんで元のアドレスを使う話に持って行ってごまかそうとするの?
そうやってビクビク逃げ回るほど臆病なのにいったい何がしたいの?
0864デフォルトの名無しさん
2013/09/15(日) 18:13:04.36なんだ?2chのレベルでグダグダ論議したいだけで解答は不要なのか?
海外でも日本でもまともなGLのフォーラムで質問してみろ
glTexGenしなおせって話にしかならないからw
0865デフォルトの名無しさん
2013/09/15(日) 18:13:58.18別のアドレスを割り当てられるならそうしたほうがいい気がする、のでそうする気がする
まあ問題は、内部動作を勝手に決めつけてる方なのでこういう推論は無意味だが
だから出来ない、とは言い切れないと思うんだよね
だからできるかどうかは規定されているべきなんだよね
0866デフォルトの名無しさん
2013/09/15(日) 18:15:19.52当然、メモリを単純に拡大して元の情報を保とうとしたら、
一旦は拡大前後合計のメモリが必要になることは理解するよな?
0867デフォルトの名無しさん
2013/09/15(日) 18:15:32.53GL使って昔から仕事でもしてれば、当然の範疇
0868デフォルトの名無しさん
2013/09/15(日) 18:16:16.01実装上必要ならglTexGenしなおすのは当然なんだが、
いったい何を言いたいのか意味不明。
0869デフォルトの名無しさん
2013/09/15(日) 18:19:14.73最近のドライバ使ってるせいか普通に出来てるんだよね
0870デフォルトの名無しさん
2013/09/15(日) 18:21:08.78ある時代のある分野の常識で考えれば分かる問題と
ある時代のある分野の常識で考えても分からない問題と
ある時代のある分野の常識で考えると間違える問題がある
それだけのこと
0871デフォルトの名無しさん
2013/09/15(日) 18:23:09.86固定観念を持っている方が危険。
0872デフォルトの名無しさん
2013/09/15(日) 18:23:48.35>>856 読め
0873デフォルトの名無しさん
2013/09/15(日) 18:27:55.29元の情報を保つ必要はないから一旦破棄して再確保でも問題ないのでは?
0874デフォルトの名無しさん
2013/09/15(日) 18:28:34.62その環境で、充分小さいサイズのテクスチャから、充分小さいサイズのテクスチャに”拡大”できるかどうかを試して欲しい
それができればメモリの問題ということになるし、出来なければ仕様ということになる
0875デフォルトの名無しさん
2013/09/15(日) 18:29:46.24必要があるかないかはGL側は判断できるのかなあ
あー引数0か・・・
0876デフォルトの名無しさん
2013/09/15(日) 18:38:38.51実装が明記してない&動くケースがある、だから動かない理由を質問 <- 具の骨頂
glGenTextureを再度呼べば良いだけっしょ
0877デフォルトの名無しさん
2013/09/15(日) 18:50:56.74その環境は今手元にないので、週明けにでも試してみます。
0878デフォルトの名無しさん
2013/09/15(日) 18:54:20.97その「汎用的」の基準として、仕様の上で正しい方法を質問したつもりなんですけどね。
そのうえで問題をどう解決するかってのは自分が考えることです。
0879デフォルトの名無しさん
2013/09/15(日) 19:08:07.33も試して欲しい。
うちの環境では
glTexStorage2D()だとGL_TRUE
glTexImage2D()だとGL_FALSE
だった。
0880デフォルトの名無しさん
2013/09/15(日) 20:52:46.76glGenTexture (...); /* 削除禁止:なぜかこうしないと動かない */
0881デフォルトの名無しさん
2013/09/15(日) 22:10:36.94要素数1個の配列作る奴の方が変だが
リストボックスに表示するために行列変換するのもなんだかな、って感じだが
ちなみに変なのはワークシート関数の仕様であって、つまりEXCELが変。VBAが変なわけではない
0882デフォルトの名無しさん
2013/09/16(月) 00:00:29.660883881
2013/09/16(月) 00:29:27.040884デフォルトの名無しさん
2013/09/16(月) 01:09:42.91思っていることを上手く伝えられないアスペのいい例。
0885デフォルトの名無しさん
2013/09/16(月) 12:59:55.52Upon success, the value of GL_TEXTURE_IMMUTABLE_FORMAT becomes GL_TRUE.
The value of GL_TEXTURE_IMMUTABLE_FORMAT may be discovered by calling glGetTexParameter with pname set to GL_TEXTURE_IMMUTABLE_FORMAT.
No further changes to the dimensions or format of the texture object may be made.
Using any command that might alter the dimensions or format of the texture object (such as glTexImage2D or another call to glTexStorage2D)
will result in the generation of a GL_INVALID_OPERATION error, even if it would not, in fact, alter the dimensions or format of the object.
0886デフォルトの名無しさん
2013/09/16(月) 13:21:14.780887デフォルトの名無しさん
2013/09/16(月) 13:28:44.200888デフォルトの名無しさん
2013/09/16(月) 13:34:08.11逆に言えばー
それ以外のテクスチャは普通に変えられるってことじゃん
0889デフォルトの名無しさん
2013/09/16(月) 16:24:36.830890デフォルトの名無しさん
2013/09/16(月) 16:32:22.09まあ、もうどうでもいいかw
実際に出来ない事を、言葉遊びで延々やろうとしれば?w
仕様が明記してない&出来ない環境があるなら、それの手法は使わないのが普通だろ
自分の環境だけ動いて&それで良いってなら別だが
0891デフォルトの名無しさん
2013/09/16(月) 17:12:51.44→glTexStorage2Dを使用していないテクスチャでは glTexImage2Dを使ってサイズ変更できる
わざわざサイズ変えちゃいけないよ的なことがglTexStorage2Dの説明に書いてあるって事は普段は変えても良いよって事でしょう
0892デフォルトの名無しさん
2013/09/16(月) 17:13:06.74ためしに古いノートのHD4570でやってみたけどどうやってもエラーにならないんだけど
少なくとも何件か再現されなきゃ、仕様に明記されてない現象認定はできないな
0893デフォルトの名無しさん
2013/09/16(月) 17:21:33.66間違ったプログラムを書いただけだろう
0894デフォルトの名無しさん
2013/09/16(月) 17:50:30.56>>813
>>819
>>821
読んでみろ、お前らは無意識に自分のちゃんとした手法で試してるだけ
つまり別テクスチャを作り直してるだけ
>>821のglTexImage2Dの最終引数見てみろ、NULLだろ
でwidthとheigthだけかえて、”もともとのテクスチャ”のサイズを変えたい
って言ってんだぞ
0895デフォルトの名無しさん
2013/09/16(月) 18:24:47.23glGenTextureからやらない動かないと言っていたところから、発言がだいぶ後退したよね。
0896デフォルトの名無しさん
2013/09/16(月) 18:30:13.01data may be a null pointer. In this case, texture memory is allocated to accommodate a texture of width width and height height.
大丈夫そうですね
0897デフォルトの名無しさん
2013/09/16(月) 18:33:05.07glBindBuffer:
While a non-zero buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target,
the following commands are affected:
glCompressedTexImage1D, glCompressedTexImage2D, glCompressedTexImage3D,
glCompressedTexSubImage1D, glCompressedTexSubImage2D, glCompressedTexSubImage3D,
glTexImage1D, glTexImage2D, glTexImage3D, glTexSubImage1D, glTexSubImage2D, and glTexSubImage3D.
The pointer parameter is interpreted as an offset within the buffer object measured in basic machine units.
glTexImage2D:
If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer)
while a texture image is specified, data is treated as a byte offset into the buffer object's data store.
有効なglBindBuffeは、同じバッファオブジェクトを指す
つまり元のバッファより大きなピクセルサイズは指定出来ない
お前らは、おそらく新しいバッファオブジェクト作ってるだけ
0898デフォルトの名無しさん
2013/09/16(月) 18:42:08.19昔は、nVIDIAで動くコードがATIじゃクラッシュしてglの仕様通りに記述したら
ATIでも動いたなんて頻繁にあったから
0899デフォルトの名無しさん
2013/09/16(月) 18:44:14.060900デフォルトの名無しさん
2013/09/16(月) 18:47:37.90誰もPixelBufferObjectを使ってるとか言ってないんですが
0901デフォルトの名無しさん
2013/09/16(月) 18:50:31.47何が仕様だいい加減にしろ
0902デフォルトの名無しさん
2013/09/16(月) 18:50:40.58全然関係ないような気が。
GL_PIXEL_UNPACK_BUFFERにbindしたバッファから転送する場合には
引数dataはバッファ先頭からのオフセットになると書いてあるだけだが?
0903デフォルトの名無しさん
2013/09/16(月) 18:51:03.31君ねぇ…w
glBindBuffeをコールすると、
GLは君には知られないようにピクセルバッファオブジェクを作るんだよ
glGenTextureをコールすると、
GLは君には知られないようにテクスチャオブジェクを作るんだよ
もっとGLを勉強しなさい
0904デフォルトの名無しさん
2013/09/16(月) 18:52:12.22うんそうだよ
全てはこの荒らしの世迷言
0905デフォルトの名無しさん
2013/09/16(月) 18:53:20.42日本語でおk
0906デフォルトの名無しさん
2013/09/16(月) 18:54:51.70>>819を良く読め
PBOを使ってるんだから、GL_PIXEL_UNPACK_BUFFER指定してるに決まってるだろ
0907デフォルトの名無しさん
2013/09/16(月) 18:57:23.13失礼wかみまみた
ピクセルバッファオブジェクトじゃないな、バッファオブジェクトだ
0908デフォルトの名無しさん
2013/09/16(月) 19:01:27.05嘘つけ!
実際に作るのはglTexImage2DとかglBufferDataを使った時だろ
glGen*は空き番号を返すだけ
0909デフォルトの名無しさん
2013/09/16(月) 19:02:24.510910デフォルトの名無しさん
2013/09/16(月) 19:08:03.31ほい仕様ね
glBindBuffer:
Calling glBindBuffer with target set to one of the accepted symbolic constants and buffer set to the name of a buffer object binds that buffer object name to the target. If no buffer object with name buffer exists, one is created with that name.
テスクチャオブジェクトは、言う通りglTexImage2D時だな
訂正ありがとう
つか、言葉が通じるGL使いが居て良かったわw
0911デフォルトの名無しさん
2013/09/16(月) 19:09:16.26それ話が変わっちゃうからw
0912デフォルトの名無しさん
2013/09/16(月) 19:20:39.96質問者のレスへのリンクまで張ったのに、PBO使ってるってコメント読んで無いとか?
そんなんで、試したとか出来ないわけないととか言っちゃてたわけ?w
0913デフォルトの名無しさん
2013/09/16(月) 19:23:50.900914811
2013/09/16(月) 19:24:08.86失礼、事実関係だけ。
参考にしたコードにPBOと書いてあったので>>819はそれを引きずってますが、
実際に使っているのはGL_ARRAY_BUFFERになります。
0915デフォルトの名無しさん
2013/09/16(月) 19:24:43.430916デフォルトの名無しさん
2013/09/16(月) 19:29:04.95glTexImage2Dは影響を受けると書いてる
影響とは、ポインターは既にあるバッファオブジェクトのバイトオフセットになると
で質問者はPBOを使ってるいる
ならGL_PIXEL_UNPACK_BUFFER指定している
つまり、バッファオブジェクトは新しく作られないから
既にあるバッファサイズを越えたサイズのglTexImage2Dはバッファオーバーするのが当然
(ドライバによっては、指定より大きいサイズのバッファオブジェクトを作って動くかもしれんが、それは環境依存)
0917デフォルトの名無しさん
2013/09/16(月) 19:31:06.45もっとGL使いとしてのステージwを上げるべきじゃね?w
>>914
後だし情報って奴ですか…w
0918デフォルトの名無しさん
2013/09/16(月) 19:32:53.85使うにしてもバッファを大きくしておけばバッファオーバーランにはならない
削除しないとテクスチャのサイズが変更できないってことは
ありえなーい
0919デフォルトの名無しさん
2013/09/16(月) 19:38:22.86知らないならともかく、説明してるのに調べせずに…w
マジ、こんなレベルのGL使いが語ってたの?
>参考にしたコードにPBOと書いてあったので>>819はそれを引きずってますが、
>実際に使っているのはGL_ARRAY_BUFFERになります。
じゃー、この変の参考の引用間違いが原因じゃねー?
0920デフォルトの名無しさん
2013/09/16(月) 19:47:03.290921811
2013/09/16(月) 19:50:35.64まぁ、バッファが関係するのはglTexSubImage2Dの部分だけと考えていましたので
そのへん詳しくは書いていませんでした。
結局のところ、GL_PIXEL_UNPACK_BUFFERをソースに指定してglTexImage2Dを
呼んだ場合、あらかじめバッファ側を拡大しておかなければエラーになる、という
ことですかね?
>>919
一応、そのサンプルコードが使っていたのは最初からGL_ARRAY_BUFFERでした。
関数名がcreatePBOだったというだけで。
0922デフォルトの名無しさん
2013/09/16(月) 19:56:03.94そうっぽい
とりあえず普通にサイズ変更は出来そうで安心した
0923デフォルトの名無しさん
2013/09/16(月) 19:59:44.42GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object's data store is currently mapped.
GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.
GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and data is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.
となっているが(他にもあるけど)、本当にGL_PIXEL_UNPACK_BUFFER指定になってない
って調べた?
人のコードを理解してないように引用するレベルなんて疑ってしまう
0924デフォルトの名無しさん
2013/09/16(月) 20:02:48.60エラーが起きるコードをコピペする(させる)べきだな
質問者はそのところ反省してくれ
0925デフォルトの名無しさん
2013/09/16(月) 20:03:45.03君の理解してる言葉はイマイチ信用できない
GL_ARRAY_BUFFER指定とかじゃなくて、PBOは使ってるの?使ってないの?
って事だと思うけど
0926デフォルトの名無しさん
2013/09/16(月) 20:05:36.31話し続いてるし、できたらglTexImage2Dのサイズ変更だけをしてエラーを出すコードとか上げれない?
全然違うところが原因かもしれないしさ
0927デフォルトの名無しさん
2013/09/16(月) 20:14:53.89もっとglBindBufferの動作についても調べると良いよ
だってglBindBufferしてる各内部オブジェクトが、glTexImage2Dで操作されるんだよ
自分ではGL_ARRAY_BUFFER指定のつもりでも、
PBO使ってるなら、内部でGL_PIXEL_UNPACK_BUFFERのオブジェクトになるかも知れないし
(これは完全に推測)
0928デフォルトの名無しさん
2013/09/16(月) 20:24:16.54>結局のところ、GL_PIXEL_UNPACK_BUFFERをソースに指定してglTexImage2Dを
>呼んだ場合、あらかじめバッファ側を拡大しておかなければエラーになる、という
>ことですかね?
内部のバッファオブジェクトの事を言ってるなら
内部オブジェクトは操作出来ないよ
ドライバ実装まかせ
0929デフォルトの名無しさん
2013/09/16(月) 20:37:01.94あ?
0930デフォルトの名無しさん
2013/09/16(月) 20:38:15.980931デフォルトの名無しさん
2013/09/16(月) 20:48:36.69GLが内部オブジェクトを使って動いているって理解出来ない人は
いちいち反応しないでくれるかな?w
0932デフォルトの名無しさん
2013/09/16(月) 20:50:08.43い?
0933デフォルトの名無しさん
2013/09/16(月) 20:52:36.650934811
2013/09/16(月) 20:57:39.96>>927
たしかに、そのへんバッファの種類や扱いについて理解があやふやなまま
だったので、コードの方にどう書いたかは確認してみます。
?GL_PIXEL_UNPACK_BUFFERにバッファをbindしたままglTexImage2Dを
呼んでないかという点についてもちゃんと認識していないので、それが
原因の可能性も考えられますね。
0935デフォルトの名無しさん
2013/09/16(月) 20:58:56.680936デフォルトの名無しさん
2013/09/16(月) 21:07:17.09PBOを理解してなくとも、ググッてコード検索すれば直ぐに分かるだろ
0937デフォルトの名無しさん
2013/09/16(月) 21:11:50.98glTexImage2DでGL_INVALID_OPERATIONが起こるケースの内容を1つづつ検証してけば良いだけ
エラーの指摘どおりのケースがあったら、それを直して再度チャレンジ
またエラーが出るようなら、同じようにAPIのエラー出てる箇所を調べて修正
エラーの箇所と原因を特定して質問出来ないレベルなら地道にやるしかないよ
0938デフォルトの名無しさん
2013/09/16(月) 21:12:59.71それでいて少しだけかじった知識で全部理解してるかのように反論してくるっていう
0939デフォルトの名無しさん
2013/09/16(月) 21:18:21.440940デフォルトの名無しさん
2013/09/16(月) 21:22:02.67837 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/15(日) 08:52:21.59
普通に職業グラフィックプログラマはいないのか?
VRAMにどう言う手順でメモリがとられ、サイズの変更ってどういう意味かを考えれば
そう言う発想にすら至らないだろ
glTexImage2Dでテクスチャサイズの変更なんて出来ない
そう言う発想する時点で低レベルを通り越して、GLやらDXを直接触るレベルに至ってないよ
838 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/15(日) 09:06:01.93
例えば、新車を買ったと思え
で、マニュアルを全部熟読したと思え
で、その車で浜から海に突入したと思え
で、言い出してるんだ
マフラーから浸水してエンジン止まってるのに
仕様で車が海に入れないって決まっていればいいのですが…
マニュアル読んでも明記してなくって…
ってレベルだw
0941デフォルトの名無しさん
2013/09/16(月) 21:22:39.520942デフォルトの名無しさん
2013/09/16(月) 21:28:33.480943811
2013/09/16(月) 21:28:47.76今は環境もコードも手元にないので。
最初は単に使い方を聞くだけのつもりでしたが、いろいろヒントをもらいましたので
明日確認してみます。
>>937
まぁそこは、それ以前の「glTextImage2Dでサイズを変更するのは正しいやり方なのか?」
というところからですから。おかげでいろいろ勉強になりましたが。
0944デフォルトの名無しさん
2013/09/16(月) 21:42:54.480945デフォルトの名無しさん
2013/09/16(月) 21:43:51.18再度glTexImage2D呼んで、新たに作成する以外に方法はない
glTexImage2Dを再度呼べばサイズ変更出来るなんてド素人発想
前のリソースリークしまくって、出来るとか言うなら
どうぞご勝手にw
0946デフォルトの名無しさん
2013/09/16(月) 21:45:10.88glTexImageすると
転送先テクスチャは再作成されずサイズも変更されない
というトンデモ理論についてはどう思う?
あるいはコピーされずテクスチャのアドレスがPBOのアドレスになるみたいに奴は考えているのかもしれない
0947デフォルトの名無しさん
2013/09/16(月) 21:47:34.85�tレームやってもメモリリークとかしねーよ
それが普通の挙動
0948デフォルトの名無しさん
2013/09/16(月) 21:49:35.84なんか表現が違ったw
こうだな
glTexImage2Dを続けて呼べばサイズ変更出来るなんてド素人発想
0949デフォルトの名無しさん
2013/09/16(月) 21:52:19.57GL内部のバッファオブジェクトとPBOをゴッチャにしか語れないレベルなら黙ってれば?w
0950デフォルトの名無しさん
2013/09/16(月) 21:53:59.830951デフォルトの名無しさん
2013/09/16(月) 21:54:22.01普通はVRAM側のリークは、メモリを壊しながら動く
それ続けて自身のアプリを放置して見てろよ?
各所でテクスチャが壊れまくるはずだからw
0952デフォルトの名無しさん
2013/09/16(月) 21:57:08.170953デフォルトの名無しさん
2013/09/16(月) 21:57:17.510954デフォルトの名無しさん
2013/09/16(月) 22:02:48.25メモリリークするって話に変えようとしていますね
しないのに
>>951はもはや見苦しい言い訳の域を超えました
0955デフォルトの名無しさん
2013/09/16(月) 22:06:24.27続けてglTexImage2Dコールしてもサイズ変更出来る訳無いって言ってるだけ
どこのレスか教授して欲しいねw
寝ぼけて書いてるかもしれんしw
なんか思い込み星人さんと議論してたのか…w
0956デフォルトの名無しさん
2013/09/16(月) 22:07:47.42811以降のレスで、俺と思しき書込みのどこにエラーになるって書いてる?
0957デフォルトの名無しさん
2013/09/16(月) 22:12:10.100958デフォルトの名無しさん
2013/09/16(月) 22:14:36.190959デフォルトの名無しさん
2013/09/16(月) 22:18:39.35技術論議とかけ離れたね
リークしないって、
例えばVRAMサイズ(GPUメモリからフレームバッファやら引い残り等)を割り出して
そのサイズ分試していってるのか?
俺は昔業務で試したが、ものの見事にVRAMサイズを超えた辺りで
キャラのテクスチャとか壊れだしだぞ?
glTexImage2Dを続けて呼ぶと、古いテクスチャは破棄される
そう言う挙動はドライバ依存で、GLの仕様にのってないから
出来る、リークしないなんて間違いだね
0960デフォルトの名無しさん
2013/09/16(月) 22:23:59.870961デフォルトの名無しさん
2013/09/16(月) 22:24:41.240962デフォルトの名無しさん
2013/09/16(月) 22:27:09.72リークを想定した汎用的な処理をしなければならず
間違った処理と言えるじゃん
自分の環境で動く&それで良い人は
好きにすれば、とも言ってるし
0963デフォルトの名無しさん
2013/09/16(月) 22:28:02.73glBindTexture(GL_TEXTURE_2D, textureID); //A texture you have already created storage for
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_BGRA, GL_UNSIGNED_BYTE, pixels);
glTexImage2D creates the storage for the texture, defining the size/format and removing all previous pixel data. glTexSubImage2D only modifies pixel data within the texture. It can be used to update all the texels, or simply a portion of them.
REMOVING ALL PREVIOUS PIXEL DATA!!!!
Hahahahaha!!!!!
0964デフォルトの名無しさん
2013/09/16(月) 22:28:36.750965デフォルトの名無しさん
2013/09/16(月) 22:30:15.02こっちが情報提供してるのに、
意味不明とか反論とか勝手な人の発言変換とかして自分を曲げないじゃん
業務とかで、隠してるつもりでも
先輩や上司はそう言うの分かるのよ
かわいそうだなーってw
0966デフォルトの名無しさん
2013/09/16(月) 22:31:19.84どう考えても前のデータを残す実装に意味があるとは思えんし
0967デフォルトの名無しさん
2013/09/16(月) 22:32:17.38その昔のヤツもなんか特殊なアロケートしてたんじゃないのかね?
0968デフォルトの名無しさん
2013/09/16(月) 22:34:58.80サイズ変更に失敗する
どちらも似たような言い方なのにソコを突くか普通
重箱の隅をつつくような話だな
0969デフォルトの名無しさん
2013/09/16(月) 22:41:47.27OpenGL.orgのwikiの中の人も前のピクセルデータは削除して当然だと思っているのに
0970デフォルトの名無しさん
2013/09/16(月) 22:44:34.760971デフォルトの名無しさん
2013/09/16(月) 22:46:54.02クロノスグループの仕様には明記してない
だからドライバがそう言う実装になってなくとも文句は言えない
つか実際にあったケースだし
0972デフォルトの名無しさん
2013/09/16(月) 22:48:20.97もう実際にあったケースなんて書き込みは意味が無いだろ
そのグラボの型とドライバのバージョンと再現するコードまで示してくれ
0973デフォルトの名無しさん
2013/09/16(月) 22:55:49.49コード的には、ミップマップのテストしてて
ミップレベル毎のテクスチャ作成をケチって
カメラとキャラの距離で、動的にglTexImage2Dを何度も読んでたら起こった
glDeleteTexture(とglGenTexture)を挟むと、テクスチャは壊れなくなった
って内容だね
0974デフォルトの名無しさん
2013/09/16(月) 22:56:50.68普通はレベル分のMipmap画像を用意したり、GL_GENERATE_MIPMAP? 指定して生成したりするんじゃないんですか?
0975デフォルトの名無しさん
2013/09/16(月) 23:02:29.02ミップレベル指定分のピクセル作成をやめて
キャラがカメラの近くの時にミップマップ無しの大きなテクスチャ、
遠のく時にミップマップ無しの小さなテクスチャを作ろうとした
(生成速度の遅さはカバー出来るアプリ仕様だったため)
まードライバ会社と英語のやりとりして、
その方法は駄目だ、ミップマップを作れって返事が来て
ドライバ修正とかにはならなかったがw
0976デフォルトの名無しさん
2013/09/16(月) 23:07:05.800977デフォルトの名無しさん
2013/09/16(月) 23:16:49.430978デフォルトの名無しさん
2013/09/16(月) 23:26:16.74いつそんなものが存在したのか知らないが本当に糞実装だな
0979デフォルトの名無しさん
2013/09/17(火) 13:19:16.71http://toro.2ch.net/test/read.cgi/tech/1379391344/
0980デフォルトの名無しさん
2013/09/17(火) 13:40:10.42スレ立て乙
0981デフォルトの名無しさん
2013/09/17(火) 14:11:51.870982デフォルトの名無しさん
2013/09/17(火) 14:15:55.42なんで GLSL には mat4 があって、OpenCL には float4x4 が無いんだ。
0983デフォルトの名無しさん
2013/09/17(火) 15:53:37.95需要と供給
0984デフォルトの名無しさん
2013/09/17(火) 18:16:59.200985デフォルトの名無しさん
2013/09/17(火) 18:24:28.350986811
2013/09/17(火) 22:55:33.31glTexImage2Dを呼ぶ時点で直接or間接にGL_PIXEL_UNPACK_BUFFERを使用して
いるのではないかと推測された方がいましたが、結果としてその通りでした。
// 描画時
glBindBuffer(GL_PIXEL_UNPACK_BUFFER,...)
glBindTexture(GL_TEXTURE_2D,...)
glTexSubImage2D(GL_TEXTURE_2D,...)
// ←ここでglBindBuffer(,0)をしていない
〜
〜
// サイズ変更時
// ←バッファを使用していないつもりだったがbindされたまま
glTexImage2D() // ←GL_INVALID_OPERATION
glTexSubImage2Dの後でglBindBuffer(GL_PIXEL_UNPACK_BUFFER,0)するよう修正
することで、どのサイズでも症状は出なくなりました。
改めてドキュメントを読み直したところ、どうやらこれに該当していたようですね。
GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the
GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer
object such that the memory reads required would exceed the data store size.
アドバイスありがとうございました。
0987デフォルトの名無しさん
2013/09/18(水) 00:27:06.25まとめ
glTexImage2Dでサイズ変更はできる(もちろん最大サイズとかメモリとか許す範囲で)
ただしglなんちゃらStrageとかピクセルバッファオブジェクトとか使って特殊なアロケーションしてる場合はダメ
0988デフォルトの名無しさん
2013/09/18(水) 07:08:28.01てっきり
嵐だと思っていたが
解決したのか
0989デフォルトの名無しさん
2013/09/18(水) 07:45:27.170990デフォルトの名無しさん
2013/09/18(水) 08:19:00.44GLint pixel_unpack_buffer_binding;
glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &pixel_unpack_buffer_binding);
assert(pixel_unpack_buffer_binding==0);
のようにglTexImage2Dする前にバインディングを確認するコードを置いておくといいのではないでしょうか。
0991デフォルトの名無しさん
2013/09/18(水) 08:24:33.93837 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/15(日) 08:52:21.59
普通に職業グラフィックプログラマはいないのか?
VRAMにどう言う手順でメモリがとられ、サイズの変更ってどういう意味かを考えれば
そう言う発想にすら至らないだろ
glTexImage2Dでテクスチャサイズの変更なんて出来ない
そう言う発想する時点で低レベルを通り越して、GLやらDXを直接触るレベルに至ってないよ
838 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/15(日) 09:06:01.93
例えば、新車を買ったと思え
で、マニュアルを全部熟読したと思え
で、その車で浜から海に突入したと思え
で、言い出してるんだ
マフラーから浸水してエンジン止まってるのに
仕様で車が海に入れないって決まっていればいいのですが…
マニュアル読んでも明記してなくって…
ってレベルだw
0992デフォルトの名無しさん
2013/09/18(水) 08:27:30.54レス数が950を超えています。1000を超えると書き込みができなくなります。