OpenGLスレ Part17at TECH
OpenGLスレ Part17 - 暇つぶし2ch175:デフォルトの名無しさん
11/12/02 19:34:48.97
URLリンク(www.daionet.gr.jp)

行列式で見てもDirectXの方が速いな。

176:デフォルトの名無しさん
11/12/02 19:40:31.58
分かってるだろうが敢えて言う

行列式じゃなくて行列の式な
意味全然違うから

177:デフォルトの名無しさん
11/12/02 20:02:25.03
>>175
contentヘッダがplain/text返すhtmlファイルってどうよ?

178:デフォルトの名無しさん
11/12/02 22:08:28.97
これで左手座標系の方が速くなる理由がわかったな。
それ以外にもDirectXはZバッファリングを適当にごまかして処理を端折ってるからな。

179:デフォルトの名無しさん
11/12/02 22:39:02.21
そうですか

180:デフォルトの名無しさん
11/12/02 23:05:41.03
左手座標系関係無いじゃんw

181:デフォルトの名無しさん
11/12/02 23:12:54.04
てか、そんな速度差も100:1ほどあるなら話は別だが、
そうでないなら、自分の書く処理に集中するべき

私の書いたプログラムの、本当に注力するべき部分、
速度に関しても本当にボトルネックになっている部分、
それが本当に問題になっているなら、そこを洗って正すべき


182:デフォルトの名無しさん
11/12/02 23:52:30.60
>>181
言ってることは至極もっともだが、論点がずれてる

183:デフォルトの名無しさん
11/12/03 00:56:27.37
175の式見てDirectXの方が速いとか言ってる人達は、
1フレームに何万回と射影行列を作るんですかね。

184:デフォルトの名無しさん
11/12/03 01:05:57.56
行列1つについて話してるのになんで出てきちゃったの?

185:デフォルトの名無しさん
11/12/03 01:27:22.90
行列一つの話をしてどうすんのさ。
元々は、DirectXは速度優先のために左手系を採用したとかいう話だったわけでしょ。
それともDirectXは行列一つを速く計算するために左手系を採用したの?

186:デフォルトの名無しさん
11/12/03 01:59:58.68
175は行列の話なのに他の話と混ざっちゃったの?

187:デフォルトの名無しさん
11/12/03 02:21:00.84
つまり175は、DirectXが左手系を採用した理由とは関係無いし、
左手系の方が速いっていう都市伝説とも関係の無い、
射影行列を作るならDirectXの方がちょっとだけ速いよっていうだけの話、って事?
だったらここで出す事に何の意味が・・・まぁいいか。

188:デフォルトの名無しさん
11/12/03 02:54:30.80
誰かベンチマーク

189:デフォルトの名無しさん
11/12/03 10:31:57.68
あの、左手系とか言ってる人はどの概念にその呼称を割り当ててるの?
z軸が反転してること? 
メモリ配置の違いによる行列の合成順のこと?

190:デフォルトの名無しさん
11/12/03 12:52:55.68
メモリ配置とか言ってる人は数学ベースで考えられない人?

191:デフォルトの名無しさん
11/12/03 13:05:51.83
>>190
数学ベースなら右手も左手も全く同じ計算量なんだから、
あとはメモリ配置とかCPU命令、GPUの仕組みやドライバなどで考えるしかないような・・・

192:デフォルトの名無しさん
11/12/03 13:06:46.36
>>190
お前もう黙れよ低脳。 数学的に考えたら速度差の話に答えが出せるっての?


193:デフォルトの名無しさん
11/12/03 13:51:14.07
>>192
メモリ配置って言ってるのが恥ずかしくなった?

194:デフォルトの名無しさん
11/12/03 13:54:23.43
>>53以降、馬鹿が目立つな。

195:デフォルトの名無しさん
11/12/03 14:08:57.53
190みたいな、具体的な話は何もできないくせにさも何かを知ってる風にしたがる厨二はどこにでもいるわけで・・・
相手にしたところで、空っぽなところからは何も引き出せないんだから、熱くならないことをお勧め致しますよ。 >>192



196:デフォルトの名無しさん
11/12/03 14:22:51.37
>>193
なんで >>191 には反論しないの?

197:デフォルトの名無しさん
11/12/03 14:58:24.48
>>193
何言ってんの?低脳は黙ってろよ


198:デフォルトの名無しさん
11/12/03 18:01:02.61
射影行列って言っても、1秒60フレームなら60回分は速くなるわけな。
メモリ効率が良いってのはなんなんだ?
GPUに転送する時に何かあるのか?

199:デフォルトの名無しさん
11/12/03 18:17:44.85
メモリ上で連続に配置されてるほうがキャッシュに乗りやすいから早い

200:デフォルトの名無しさん
11/12/03 18:37:02.66
ほうほう。左手座標は連続してて右手座標は連続してないのか。

201:デフォルトの名無しさん
11/12/03 18:52:53.65
>>199
それは確かにそうだが、
行列1つを行優先で配置しようが列優先で配置しようが、
普通のライブラリならどちらも連続的に配置する(ことを要求してくる)
採用している座標系の右手左手に関係なく

そして、行列同士の演算や行列とベクトルの演算において、
ある行や列は計算に不要ということはなく、全ての要素が計算対象となる

だから、行優先でも列優先でも、ましてjpgみたいに斜めに配置しようと、
連続的に配置されているのなら、1回の演算におけるキャッシュ効率は全く同じ

ちなみに、行列1つにつき32ビット浮動小数点16個分で、たった64バイト

ライン長64バイトのキャッシュメモリの場合、
行列の要素をメモリ上にどのように並べようが連続してさえいれば、
1行1列目にアクセスした時点で全要素キャッシュにロードされる


202:デフォルトの名無しさん
11/12/03 19:51:25.43
しかも64バイトの配列の並びは行優先と列優先の転置では同じでしょ
DirectXのx行目y列目とOpenGLのy行目x列目は共にm[ x * 4 + y ]

203:デフォルトの名無しさん
11/12/03 22:07:36.25
メモリ配置厨涙目w

204:デフォルトの名無しさん
11/12/03 22:18:59.02
なんか痛々しいのが多いな

205:デフォルトの名無しさん
11/12/03 22:21:48.17
それ誰に対して言ってるの?

206:デフォルトの名無しさん
11/12/03 23:21:20.71
散々関係ないって言ってるのに
いまだに右手だの左手だのほざいてるアホにでしょう

207:デフォルトの名無しさん
11/12/04 04:05:23.61
ポリゴンの一面単位でなく、頂点単位でglRotate~などの変換を適用させる方法がわかりません
頂点データを毎回変更させてから描画するしかないのでしょうか?

208:デフォルトの名無しさん
11/12/04 04:23:58.39
>>207
それは例えば 「鋭く尖ったウニみたい五芒星を、まるっこい五角形に」 みたいな話?
頂点更新して再適用( glMapBuffer~頂点更新~glUnmapBuffer )するか、
または頂点シェーダで

209:デフォルトの名無しさん
11/12/04 04:37:03.43
>>208
そのような描画をしたいんですが、どうやら毎回更新するしかなさそうですね
ありがとうございました

210:デフォルトの名無しさん
11/12/04 12:06:31.69
>>209
ちなみに一つだけ老婆心で書いておくと、上の話を踏まえた場合、
>頂点単位でglRotate~などの変換を
頂点の移動は glScale/glRotate/glTranslate でなく、自分で数学的に計算すること
何故って自分で持ってるデータを書き換えて、再送信だから

211:デフォルトの名無しさん
11/12/05 20:47:51.51
みんなツールキットは何を使ってるん?

212:デフォルトの名無しさん
11/12/05 22:41:26.19
普通wgl

213:デフォルトの名無しさん
11/12/05 22:46:46.19
Linuxでも使えたっけ wgl

214:デフォルトの名無しさん
11/12/06 00:17:56.36
まともな環境なら大抵はね

215:デフォルトの名無しさん
11/12/06 01:23:57.38
SDL
androidに移植できるらしいが情報が全然なくて途方に暮れてる

216:デフォルトの名無しさん
11/12/06 01:38:36.17
SDLはライセンスに注意


217:デフォルトの名無しさん
11/12/06 03:29:32.31
GPL混ざってる?

218:デフォルトの名無しさん
11/12/06 11:05:49.93
>>211
好きなの選べ
URLリンク(www.opengl.org)

さすがにSDLは時代遅れだろう
GLFWとかの方がいい

219:デフォルトの名無しさん
11/12/06 12:34:32.43
SDLとGLFWとでは抽象レベルが全然違うような気がする

220:デフォルトの名無しさん
11/12/06 12:45:26.92
SDL使うぐらいならSFMLを使ったほうがいい

221:デフォルトの名無しさん
11/12/06 21:39:43.13
GLEWで音楽再生とかどうやるの?

222:デフォルトの名無しさん
11/12/06 22:23:01.91
恥ずかしながらSFMLって初めて聞いた
面白そうだけど日本語情報が少ないから大変そうだ……

223:デフォルトの名無しさん
11/12/06 22:30:46.33
>>221
GLFW 自体には音楽再生用の仕組みは用意されていないから、
別のライブラリやAPIを使う

play 関数を呼べば stop 関数を呼ぶまで再生し続ける関数があるなら、
それを適当なタイミングで呼べばいい

再生用バッファにwavデータを少しずつ放り込むタイプなら、
毎フレームにおいてバッファの様子を調べて適当にデータを放り込め

224:デフォルトの名無しさん
11/12/06 22:39:54.84
>>218
横からだけど、glutしか使ってなかった
glfwまじで使いやすかったわ・・・ガチでありがとう

225:224
11/12/06 22:40:46.98
テンプレに入れて欲しいくらいだ

226:デフォルトの名無しさん
11/12/06 23:23:03.87
フレームワークだけは自作じゃないと落ち着かない

227:デフォルトの名無しさん
11/12/06 23:43:21.70
>>224
glutと比べてどこらへんが使いやすい感じなの?

228:デフォルトの名無しさん
11/12/07 07:26:32.42
>>227
・ちゃんとメインループから帰ってくる
・tgaのテクスチャなら作るのラクチン
・glutくらいシンプル

229:デフォルトの名無しさん
11/12/07 16:18:16.17
GLUTによる「手抜き」OpenGL入門を見てアニメーションを作っているのですがこのやり方で一定の動きをした後同じオブジェクトに違う動きをさせるアニメーションを作るにはどうすればいいでしょうか?

230:デフォルトの名無しさん
11/12/07 17:24:24.21
どこのopenglのバージョンの境かしらないが
0サイズのテクスチャーをFBOにアタッチしてOKだったりエラーだったりするのな
焦らせやがって全くw

231:デフォルトの名無しさん
11/12/07 19:04:32.62
>>229
それは GLUT や OpenGL とは何の関係もない

「一定の条件を満たしたかどうか」を判定する方法と、
判定した結果に応じて「状態を遷移させる」方法があればできる

if (一定の動きをしたか?) then 違う動き else 同じ動き

とか

void anim1 () { 同じ動き }
void anim2 () { 違う動き }
--------
a = anim1 // 初期化

if (一定の動きをしたか?) then a = anim2

とか、方法はいろいろある

232:デフォルトの名無しさん
11/12/07 19:43:08.10
いつも省略してたからthenっていう書き方が斬新に見えた
本来は if then elseなんだな

233:デフォルトの名無しさん
11/12/07 19:45:51.25
>>232
スマン

>>231 は擬似コードのつもりだ

234:デフォルトの名無しさん
11/12/08 23:59:15.80
ES 2.0でglEnable/glDisableのGL_MULTISAMPLEがなくなってますが、
途中でマルチサンプルのON/OFFを切り替えるのって
もうできなくなってしまったんでしょうか?

235:デフォルトの名無しさん
11/12/09 21:31:02.67
スレチだけど状態遷移書いてるとyieldとか手軽につかえたらなーと思うなぁ

236:デフォルトの名無しさん
11/12/10 00:43:40.49
long jumpでええやん

237:デフォルトの名無しさん
11/12/10 03:28:12.94
libpclマジオススメ

238:デフォルトの名無しさん
11/12/10 16:16:42.39
>>231
ありがとうございます。また質問させてください。

239:デフォルトの名無しさん
11/12/10 20:23:17.92
>>236-237
うーんなるほど・・・

240:デフォルトの名無しさん
11/12/10 21:11:47.73
これまでの流れで自分の理解度が不安になったんで質問します。
質問1)
OpenGL の行列が C=CM なので
原点から10離れた位置でZ軸で45度回転する場合の行列を求めるには
紙の上では
C:カレント行列 R:Z軸で45度回転 T:X軸に10移動 I:単位行列
C=I
C=C * R ローカル座標のZ軸で45度回転
C=C * T ローカル座標のZ軸で45度回転したX軸で10移動
C=((IR)T)=(I(RT))

コーディングでは
C=I
C=C * T or C *= T ローカル座標のX軸で10移動
C=C * R or C *= R X軸で10移動したローカル座標のZ軸で45度回転
C=((IT)R)=(I(TR)) or C= I * T * R
つまり、紙の上では C=IRT コーディングは C=ITR
で、正しいですか?


241:デフォルトの名無しさん
11/12/10 21:12:29.51
質問2)
OpenGL の行列が C=CM なので
原点から10離れた位置でZ軸で45度回転する場合の行列を求めるには
C:カレント行列 R:Z軸で45度回転 T:X軸に10移動 I:単位行列
紙の上では
C=I
C=T * C 絶対座標系のX軸で10移動
C=R * C 絶対座標系のZ軸で45度回転
C =((RT)I)=(R(TI))

コーディングでは
C=I
C=C * T or C *= T 絶対座標系のX軸で10移動
C=C * R or C *= R X軸で10移動した絶対座標系のZ軸で45度回転
C=((IT)R)=(I(TR)) or C= I * T * R
つまり、紙の上では C=RTI コーディングは C=ITR
で、正しいですか?
紙の上ではC=MC をコーディングではC=CM で計算しているので
行列の計算順は質問1)と同じですが、行列TやRの算出方法は
今回はたまたま同じ行列TやRが使えるだけで 質問1)と異なりますよね?

242:デフォルトの名無しさん
11/12/11 09:54:37.99
>つまり、紙の上では C=IRT コーディングは C=ITR
>で、正しいですか?

正しいわけないだろ

243:デフォルトの名無しさん
11/12/11 12:28:27.29
>>240-241
紙の上ってどういう意味?

>>242
何が悪いか言わずに正しいわけないだけ言うのって内容を理解してない人間がよくやる

244:デフォルトの名無しさん
11/12/11 12:40:56.23
今からまた行ベクトルだ列だ転置だ左手だってはじめるのかw


245:デフォルトの名無しさん
11/12/11 12:49:30.33
はあフレームバッファの始点を左上にしたい

246:デフォルトの名無しさん
11/12/11 14:16:09.57
また阿呆が暴れてるのか。消えろよ 240

247:デフォルトの名無しさん
11/12/11 14:47:23.17
紙の上ってのが良くわからんが C=IRT コーディングは C=TRI じゃねぇの?
右から計算するなら

248:デフォルトの名無しさん
11/12/11 14:58:12.26
一部のandroid機種だとGL_INFO_LOG_LENGTHの値って常に0が返ってくるのね…

おのれー!

249:デフォルトの名無しさん
11/12/11 16:29:34.26
紙の上=学校で習った数学での習慣を使った手計算の時の順序では、
ってことじゃないの?

ここは勉強出来ない、数学出来ない、ライブラリのリファレンス読んでわかったつもりの
ニートとクズの吹き溜まりだから、真面目な質問しても答え返ってこないよ
>>242-247 みたいなレスしか返せない。 さらにバカだと >>246 みたいな頭のおかしいレスになるし。

ちなみに俺は、数学弱いのでよくわからないw

250:デフォルトの名無しさん
11/12/11 16:49:04.80
>>249はなんで書き込んだんだ?

251:デフォルトの名無しさん
11/12/11 17:17:43.47
>>240
紙のRやTもOpenGLでは転置になるから同じR T ではない点に注意
(R * T)の転置 = Tの転置 * Rの転置
という関係があるので逆になるように見える。
縦書きと横書きの違いでしかない
つかずっと同じ話してるので、自分で実際にプログラム作って確認してみたらいいよ

252:デフォルトの名無しさん
11/12/11 18:17:41.79
>>251
OpenGLでは転置になるとかウソ書くからまた混乱する初心者が増えるんだよ・・・。
OpenGLの主な(?)ドキュメントは列ベクトル表記を採用しているというだけの話だろ。

253:デフォルトの名無しさん
11/12/11 18:33:20.71
>>252
その通りです。すいません。

254:デフォルトの名無しさん
11/12/11 19:32:11.05
>>247は合ってると思うけどw
学校で習った数学での習慣を使った手計算の時の順序が
OpenGLでは逆になるという事だ

255:デフォルトの名無しさん
11/12/11 19:48:22.38
紙の上とは
>>249氏のとうりです。
>紙の上=学校で習った数学での習慣を使った手計算の時の順序では、

>>247
確かにです。

>>254
皆さん、有難うございます。


256:デフォルトの名無しさん
11/12/11 20:05:03.67
数学こそ列ベクトルが基本じゃないか

写像 f1, f2, f3 (対応する変換行列は M1, M2, M3)を考えたときに
列ベクトル [x; y] に f1, f2, f3 を順番に適用すると、

[x'; y'] = f3(f2(f1([x; y])))
    = M3 M2 M1 [x; y]

同様のことを行ベクトルで書くと、

[x' y'] = [x y] t(M1) t(M2) t(M3)   t(・)は転置

というだけの話だろ
というか、変換行列であることを無視して単なる行列演算の話をしても無意味

257:デフォルトの名無しさん
11/12/11 20:14:05.98
数学、OpenGL=列ベクトル
C/C++の配列=行ベクトル
だから逆順に掛けるんだよ

258:デフォルトの名無しさん
11/12/11 22:50:04.22
>>257
ハァ??????

259:デフォルトの名無しさん
11/12/12 00:19:00.50
ここは自分の中の知識を相手に伝えることの出来ない人間と相手の言っていることを理解しようともしない人間の巣窟ですね

260:デフォルトの名無しさん
11/12/12 00:21:37.57
さすがに>>257は、わざわざ頓珍漢な事を書いて場を荒らそうとしてるとしか思えないレベル。

261:デフォルトの名無しさん
11/12/12 17:02:57.84
glutで作った二つのウィンドウに,
glDrawArraysを用いて全く同じ物を描画しようとすると,
エラーでプログラムが落ちてしまいます.
ウィンドウが一つの時は問題なく描画できています.
頂点の数は2^24個程なのですが,何か制限があるのでしょうか?
頂点の数を減らしても駄目でした.

262:デフォルトの名無しさん
11/12/12 17:53:24.12
>>261
昔のことなんで間違ってるかもしれないが
テクスチャとか頂点配列ってウィンドウごとに固有じゃなかったっけ

263:デフォルトの名無しさん
11/12/12 22:12:10.54
2つのスレッドが同じ所を参照しようとして… とか
いや適当だが

264:デフォルトの名無しさん
11/12/12 22:52:59.22
クリティカルセクション

265:デフォルトの名無しさん
11/12/12 23:00:25.39
wglShareLists

266:デフォルトの名無しさん
11/12/13 00:38:39.68
glutでウィンドウ2つ作れることに驚いた

267:261
11/12/14 10:56:15.94
返信ありがとうございました.
検討したところ,>>262の方の言う通りでした.
VBOを二つ用意しても,予め二つ確保した場合では描画されず,
もう一つのウィンドウを作成したあとにもう一つのVBOを確保してやる必要がありました.
皆様,御助言ありがとうございました.

268:デフォルトの名無しさん
11/12/14 14:49:13.76
>>267
それを共有するようにするのが>>265のwglShareListsだったり
glut使ってるとすんなりは無理かもしれないけど

269:デフォルトの名無しさん
11/12/14 17:02:23.81
三次元中にGL_QUADSにglcolorで色をつけて描画したいのですが
線のみ色が変わります。塗りつぶすにはどうすればいいでしょうか?

270:デフォルトの名無しさん
11/12/14 17:15:35.56
glPolygonMode 辺りを

271:デフォルトの名無しさん
11/12/14 17:47:43.58
C#でOpenGLを使うのも悪くないと思えてきてしまった。
少なくとも、MFCで四苦八苦するのはもうイヤだし。
OpenGL Menu URLリンク(t.co)

272:デフォルトの名無しさん
11/12/14 18:24:05.83
>>270
それを使って塗りつぶせました。
ありがとうございます。

273:デフォルトの名無しさん
11/12/14 20:50:01.98
短縮URLやめようぜ

274:デフォルトの名無しさん
11/12/14 21:19:57.20
なんで?

275:デフォルトの名無しさん
11/12/14 21:50:46.83
>>271
MFC使わなきゃいいだけじゃね
stl と boost と自分の過去資産(win32ハンドリング含む)があればまったく不要

と言う俺は最近 Python+OpenGLが楽しい。直書きそのまま実行でGLSLのテスト出来るってのが、
スクラッチ&ビルドで実験コード書いてる時、超絶楽ちんぽん


276:デフォルトの名無しさん
11/12/15 03:07:36.75
>>274
文字数にシビアな制限があるわけでもないし、
短縮だとどこへのリンクかURLから予測できないからクリックしずらい

277:デフォルトの名無しさん
11/12/15 09:16:56.06
t.coだからtwitterのつぶやきをコピペしたんだろ。

278:デフォルトの名無しさん
11/12/16 18:14:51.33

OpenGLって、ジオメトリインスタンシングを自動でやるのですか。

ディスプレイリストだったら、APIの仕様としてまとめて送るというのは知ってますが
ジオメトリまでやってるとは聞いた事がありません。

279:デフォルトの名無しさん
11/12/16 18:29:18.90
glDrawElementsInstanced

280:デフォルトの名無しさん
11/12/16 19:30:39.69
インスタンシングを勉強すると、1体しか出なくても
それで出してしまう

関数ポインタを習った後、何でもかんでも関数ポインタ使って実装したのと同じ

281:デフォルトの名無しさん
11/12/16 19:51:58.10
インスタンシングが必要ない程度には早いって大昔に聞いたけど専用の拡張もできてたんだな

282:デフォルトの名無しさん
11/12/16 20:02:18.47
やっぱ効果あるよ
30フレームすら維持できないくらいに頂点を増した状態でインスタンシングすると
60フレームにビターッと張り付く



283:デフォルトの名無しさん
11/12/18 09:37:33.50
自分はカメラは3次元空間に配置するオブジェクトだからモデルビューに置くものだと思ってるけど
みんなはプロジェクションビューとモデルビューどっちに置く?

284:デフォルトの名無しさん
11/12/18 10:15:36.87
お前は一体何を逝ってるんだw

285:デフォルトの名無しさん
11/12/18 12:02:02.53
>>283
曖昧にしか理解していないか、
またはもの凄く話しを省略して話している?

自分が言った内容の詳細を説明してみろ


286:デフォルトの名無しさん
11/12/18 14:07:21.36
ジオメトリだけ考えるならカメラ操作を投影行列の方でやってもいいんだろうけど、
それだとライティングやクリッピングその他、色々うまく動かなくなるよね。

287:デフォルトの名無しさん
11/12/18 14:17:20.92
283=286だな
お前の理解はまったくダメダメなので
あと3回OpenGLの教科書を読み直せ


288:デフォルトの名無しさん
11/12/18 18:05:43.34
>>286
まさかとは思うが、モデルビューとプロジェクションビューって言う、
プログラム的にまったく作りの異なる別の何かが存在してるとか思ってる?
あと、まさかカメラって言う、プログラム的に独立した、
何か曖昧なオブジェクトが存在してると思ってる?


289:286
11/12/18 18:28:08.72
いや283じゃありませんが。
お二人とも、想像力豊かなコトでw

290:デフォルトの名無しさん
11/12/18 18:59:56.56
つかプロジェクションビューってなに

291:デフォルトの名無しさん
11/12/18 20:02:32.63



「ここは茶臼山でしょうか?」



関西人「ちゃうス」

292:デフォルトの名無しさん
11/12/18 20:20:45.45
今どきのOpenGLで
自前で行列管理してる話とかじゃないのかしら


293:デフォルトの名無しさん
11/12/18 22:51:23.18
こうするか
glMatrixMode(GL_PROJECTION);
gluLookAt(up_.x, up_.y, up_.x, eye_.x, eye_.y, eye_.z, center_.x, center_.y, center_.z);

こうするかって話じゃねーの?
glMatrixMode(GL_MODELVIEW);
gluLookAt(up_.x, up_.y, up_.x, eye_.x, eye_.y, eye_.z, center_.x, center_.y, center_.z);


294:デフォルトの名無しさん
11/12/18 22:52:00.44
いや違うか

295:デフォルトの名無しさん
11/12/19 08:43:44.81
いやそうでしょ
多分

296:デフォルトの名無しさん
11/12/19 11:40:52.17
・glx:    XからOpenGLを使うためのライブラリ。普通は直接は使わず意識する事はない
・glut:   クロスプラットフォームなツールキット。でもさすがに古くさい
・glew:   これを入れないと拡張機能が使えないor使いにくい
・glxgears: 歯車が回るベンチマーク。-infoでOpenGLのバージョンが見られる。OpenGLの動作確認はこれで
・glxinfo:  自分の使っているカードのOpenGLの機能が全てリストアップされる。
・OpenTK  C#からOpenGLを簡単に使えるようになる。VC#の強力なIntellisenseとあわせてサクサク開発可能。


OpenGLちゅんは、なんでこんなに分家しとるん?

いちいちめんどくさいだろ。
1つで全部できるようなもんないのか

297:デフォルトの名無しさん
11/12/19 11:50:10.15
いや違うカテゴリーのものを一緒にされてもw


298:デフォルトの名無しさん
11/12/19 11:56:34.57
>>296
一人や一箇所が全部作ってる訳じゃないから。 分家してるとか、そういう事じゃないんだよ。LinuxやUnixのOSとかもそうだけど。
コンピュータの世界にあるライブラリや製品の多くがそうなように、それぞれバラバラに、
誰かがいつか思いついて開発して、そして増えて広がっただけ。 またはプロダクトの設計上、疎結の関係にして切り離したりしてるだけ

俺らが、他人の生み出した物を使わせてもらう分際で、それすらめんどくさいと思うのなら、
むしろ自分で一つにまとめたライブラリでも作って自分で使うか、または世界に発表して、標準化しておくれ。
誰にでもそうやって、高名を得るチャンスは平等にあるんだから


299:デフォルトの名無しさん
11/12/19 12:04:05.26
>>296 阿呆か。

300:デフォルトの名無しさん
11/12/19 12:16:28.84
分家というならESの方よね

301:デフォルトの名無しさん
11/12/19 13:23:01.03
>>296
わらったw

302:デフォルトの名無しさん
11/12/19 15:19:18.34
今は glm なんかもあるしなあ。

303:デフォルトの名無しさん
11/12/19 18:32:49.87
これってnvidiaドライバのバグ?
glGetActiveUniformARBでシェーダ側の変数名を得ると
シェーダ側の変数が"uniform mat4 JointTransform[62];"の時
amd "JointTransform"
nvidia "JointTransform[0]"
と返ってくる

304:デフォルトの名無しさん
11/12/19 20:35:01.94
>>296
>1つで全部できるようなもんないのか

いいとこに気がついたね
誰もそういうのを作ってないんだよ お前が作ればいいじゃん


305:デフォルトの名無しさん
11/12/20 08:14:09.99
>>303
バグかどうか知らんけどうちでもそうなる。
もう随分前からずっとそうなので、そういうもんだと思ってやってる。

306:デフォルトの名無しさん
11/12/20 10:50:30.42
>>304
だな。
そしてglなんとかがまた一つ増えるw

307:デフォルトの名無しさん
11/12/21 05:31:10.57
魔方陣GLGL

308:デフォルトの名無しさん
11/12/21 12:54:40.15
でも何で「glなんとか」なのか___

接頭詞としてglつけろ”という決まりでもあるのか。

glグレネードランチャーとかいうの作ったら、略称がglglになるじゃねえか。

309:デフォルトの名無しさん
11/12/21 13:41:33.49
ARB48

310:デフォルトの名無しさん
11/12/21 23:23:43.19
メンバーが抜けたり消えたりする

311:デフォルトの名無しさん
11/12/21 23:52:38.10
えっ、それ減る一方

312:デフォルトの名無しさん
11/12/22 01:45:12.94
SDLだってSFMLだってあるんですよ!
つかSFMLすげえな。SDLだったらSDL_imageやSDL_mixerが必要なところをこれひとつで全部賄えるなんて

313:デフォルトの名無しさん
11/12/22 09:41:14.44
GLSLのfragment shaderでmain関数の中のfor文の打ち切り条件式に
uniform変数を使うと挙動がおかしくなるんですけど
uniform int n;
for(int i = 0 ; i < n ; i++){...
こんなの
これなんなんでしょうね
main関数以外でも同じようなことやってるんですがそっちは別段なんともないんですよね

314:デフォルトの名無しさん
11/12/22 09:57:30.13
floatでシェーダーに渡して中でintにキャストしたら安定した
なんだこれ・・・

315:デフォルトの名無しさん
11/12/22 10:37:55.73
Uniform変数にintって使えたっけ?
標準では無理だった気がする。まだベンダー拡張じゃなかったか

316:デフォルトの名無しさん
11/12/22 11:16:54.55
あ、一応glew使ってます
あとGLSLは#version 120

317:デフォルトの名無しさん
11/12/22 18:47:56.90
1.2じゃ駄目だった気が

318:デフォルトの名無しさん
11/12/24 03:01:22.09
glGetUniformLocation
glUniform

319:デフォルトの名無しさん
11/12/25 02:25:27.39
シェーダで使うライトの数はコンパイル時に決定するから外部変数にはできないのかー
なんか回避方法ないかねこれ

320:デフォルトの名無しさん
11/12/25 09:35:52.68
floatで渡せよ。何いってんだ

321:デフォルトの名無しさん
11/12/25 11:30:17.68
普通(?)のGLSLのライトの数はfloatで渡せばいいんだけど、
WebGLのGLSLはループ回数(の上限)がコンパイル時に決まらないといけないから
for (int i=0; i<8; ++i) {
 if (i >= num_lights) continue;
 ...
}
みたいな書き方になったりする。

322:デフォルトの名無しさん
11/12/25 12:06:40.62
>>321
WebGL って OpenGL を JavaScript から使うバインダか何かじゃなかったか。
Python から OpenGL を使う PyOpenGL みたいな、要は
ほにゃららから OpenGL を使う 何とか、みたいなそういう立場の物。

なので、先に WebGL の話だけど、って前提置いてから話さないと、
君が一人で思ってる事なんて、誰にも伝わらないよ


323:デフォルトの名無しさん
11/12/25 12:19:42.96
使う上限を予め決めといてライティング結果をライト毎に加算すればいい
使わないライトは0になる値を入れておけば問題ない

324:デフォルトの名無しさん
11/12/25 12:22:04.66
素人考えだけど、テクスチャマップのファイルに
データとしてライトの情報を入れて、シェーダー側で参照ってできんの?


325:デフォルトの名無しさん
11/12/25 12:29:37.33
ライトマップか投影テクスチャのどっちの意味かわからんけどできるよ

326:321
11/12/25 12:29:58.56
>>322
何を勘違いしてるのか知らないけど。
俺は319じゃないし、単にこういうこともあるって書いただけだよ。

>>324
できる。

327:デフォルトの名無しさん
11/12/25 12:33:44.10
>>324
浮動小数点フォーマットのテクスチャファイルに、長い行列の要素放り込んで
シェーダ側でそれを参照、とかは珍しくない話。だが、

>データとしてライトの情報を入れて

これがどこまでを想定してるのが曖昧なので、YesともNoとも言いにくい

自分が使いたい情報で、かつUniform変数で渡してられないほどの分量があった時、
かつ浮動小数点フォーマットのテクスチャが使える環境なら、そういう手段を取る事もあるでしょう、って話


328:デフォルトの名無しさん
11/12/25 12:36:30.60
>>326
じゃあそれを最初に言えよ。>>319-321 の流れみたら、普通に本人だと思うだろうが。
なんでお前も前提置いて話せないの?
お前が一人で思ってる事なんて、誰にも伝わらな… あれ?デジャブ?

329:デフォルトの名無しさん
11/12/25 12:47:04.90
>>328
恥ずかしかったのは分かるがそう開き直られてもな。
お前みたいなアホの事まで考慮して書き込む気は無い。

330:デフォルトの名無しさん
11/12/25 12:47:16.38
>>321
どうでもいいけどそこはbreakじゃだめなん?用途しだいか?でもcontinueである場合ってないよな?

331:デフォルトの名無しさん
11/12/25 12:50:47.04
>>330
なんだったけかな…よく覚えてないけど、breakだとうまく動かなかったような。

332:デフォルトの名無しさん
11/12/25 12:57:26.07
>>329
いやアホはどう見てもお前。狭い了見の自己中。
それに気づいていないで開き直ってるお前が、まさにアホ



333:デフォルトの名無しさん
11/12/25 13:01:15.59
アホと言うより、10代くらいのガキだと思う


334:デフォルトの名無しさん
11/12/25 13:03:43.79
>>321
ちょっとそんな抜け道がと思ってやってみたがなんでか駄目だった
break continueどっちも試したが反応なしというか

335:デフォルトの名無しさん
11/12/25 13:20:41.56
>>332
横から口挟むけど>>319は環境については触れていないのに>>321で突然WebGLに話が具体化
この流れはどう見ても本人が情報後出ししたケースの流れ
国語の勉強の話しになるけど本来は「WebGLのこと言ってるなら」とか書くべき
ちょっと脳内スキップ発揮しすぎかと
オフでも多分周りの人間はあなたの話しについて行けてないと思う

336:デフォルトの名無しさん
11/12/25 13:23:30.95
予想だが、GLSLが使うライトの数を評価するのは
uniform変数は0
for文のイテレーター変数は増えない
0番目のライトのみデフォルトで取得
この条件下で行われるのかもしれない

337:デフォルトの名無しさん
11/12/25 13:24:51.04
>>335
安価先、>>321 >>326 >>329 宛てだなそれ



338:デフォルトの名無しさん
11/12/25 13:25:52.34
>>336
あーいや、2番目おかしいな

もうわかんねえなこれ

339:デフォルトの名無しさん
11/12/25 13:44:16.46
>>325,326,327
ありがと

340:デフォルトの名無しさん
11/12/25 14:07:50.08
>>334
じゃあ
for (int i=0; i<8; ++i) {
 if (i < num_lights) {
  ...
 }
}
みたいな感じではどう?

それでダメならプログラム間違ってるんじゃないかとw
「反応なし」の意味がちょっと分からないけど。

341:デフォルトの名無しさん
11/12/25 14:15:34.88
>>319は回避方法ない?って聞いてて
>>321は回避方法を書いてる
という状況で、>>321>>319本人だと誤認するロジックが分からん。
国語の勉強の問題なの?

342:デフォルトの名無しさん
11/12/25 15:39:15.12
>>341

>>321>>319 の回避方法じゃなくて、追加情報と解釈してしまったのだと思う
つまり、>>321 の方法しかないのか? もっといい方法無いの? と質問しているように取ったと

たぶん、これがロジックだと思う

国語の勉強の問題なのかどうかは分からないし、このスレとは何の関係もない
余計な煽りをしないで、双方さっさと誤解を解いて話を続けた方が良い

343:デフォルトの名無しさん
11/12/25 15:43:06.37
>>341
ついでに言うと、>>321 の前に >>320 があることも誤解を生んだ原因かと

>>319 の質問に対して >>320 が答え、そうなんだけどさと>>321>>319)が追加質問
のように見えてしまったんだろ

344:デフォルトの名無しさん
11/12/25 16:01:47.10
>>326>>321が別人という可能性もある

つか結局WebGLの話なのか?

345:デフォルトの名無しさん
11/12/25 16:43:27.97
お前ら面白いなぁ

346:デフォルトの名無しさん
11/12/25 17:12:26.45
>>340
それで効きました
ただ・・・なんか動作が全部チェックしているときの重さと変わらない感じ
for(int i = 0 ; i < gl_MaxLights ; ++i){...

プログラムはコメントアウトしたりして比較しているので間違っては無いと思いたい

反応なしは、1個目0番のライトだけアクティブで他のライトが反応しない状態

なんかもうライトの変数なんて高が知れてるから全部uniform化させてしまおうと思えてきた

347:デフォルトの名無しさん
11/12/25 17:21:40.56
>>342-343
まったくその通り

348:デフォルトの名無しさん
11/12/25 17:32:06.25
>>346
だから「ライトが反応しない」じゃ意味分からないってばw
built-in変数に値が設定できてないとか?

349:デフォルトの名無しさん
11/12/25 17:41:38.20
>>348
そういうことです

350:デフォルトの名無しさん
11/12/25 18:35:38.68
常々思ってるけどID出ない板って色々不便ね。

351:デフォルトの名無しさん
11/12/25 19:01:12.87
IDあってもID変えただけの同一人物だろwとか言い出す馬鹿もいるけど

352:デフォルトの名無しさん
11/12/25 19:49:07.95




floatに頼子だ割ったプログラムソースを目指す人のためのブランド「float志向」






353:デフォルトの名無しさん
11/12/25 20:23:30.41
フロシコ

354:デフォルトの名無しさん
11/12/25 20:27:13.65
誤字が何もかも台無しにしている

355:デフォルトの名無しさん
11/12/26 03:17:34.79
シェーダーの最適化は、GLSLが吐くオペコード数を減らす事とほぼ同義

つまり、固定数ループのfor文で、ループ中で条件かけても
条件が変数でコンパイラが事前に分からないなら
吐き出されるオペコードは、個定数ループを処理する長さと同じ

例え条件で、ジャンプして処理を多少飛ばした所で
シェーダーのオペコード数は同じなんだから大して軽くならない

マジで最適化かけるなら
#if や #ifdef 等でコードをライト数分用意して
動的に切り替わる仕組みを入れないと駄目なんじゃないかな?

356:355
11/12/26 03:29:13.26
昔々のシェーダーモデルのバージョンが低い頃は
if文は重たいなんて言われてたでしょ、そんなイメージ

因みに、うちの会社のライブラリは、シェーダー内に
#if や #ifdef なんかが可読性を殺す程入ってて
バカにしてたけど、シェーダー最適化の説明を聞いて納得した

例を挙げると、シェーダー初期化前にライト数を決めると
そのライト数を処理するシェーダーコードになる仕組み、見たいな
(実行中に変えると、シェーダーの再初期化が入るので非推奨って感じ)

357:355
11/12/26 03:39:33.79
要はシェーダー構文だけで、
ライト数に応じて可変の最軽量負荷のコードを吐くのは無理かと思われる

一番簡単なのは、一番バカっぽいけど
ライト数文のシェーダーファイル(コード?)を用意して
ライト数に応じて、各シェーダーを適応すれば良い

シェーダーやシステムをスッキリさせるか、最適化シェーダーを目指すかは
仕組みを理解して、自分でバランスを決めて実装するしかないと思うよ

確か、GLSLコンパイラでシェーダーアセンブラを吐く機能があったから
まずはそれから試してみなよ

358:デフォルトの名無しさん
11/12/26 04:35:52.19
うおぉ

ためになる話ありがとうございます
シェーダアセンブラは初めて聞きました、敷居高そうですが心に留めておきます

359:デフォルトの名無しさん
11/12/26 17:07:26.71
敷居が高いというか、HLやGL+しゅっしゅっぽっぽぅができるまでは

みんなそれでやっていた。

360:デフォルトの名無しさん
11/12/26 17:07:59.22
そこはCgというべきだったか
HLSLはCgの無断モロパクリだからな

361:デフォルトの名無しさん
11/12/26 20:28:19.01
なんかi286以前の頃に戻った気分だ
クロック数とか気にしちゃう系

362:デフォルトの名無しさん
11/12/27 01:12:18.27
みんなPTXとかILとか読んでないの?

363:デフォルトの名無しさん
11/12/27 18:17:59.29
>>350
この板が扱う話題の性質上、IDが出ると
必死チェッカーで照らしあわせれば
どこの企業(大学)に属してて何をやってるのかとか、おぼろげながら分かってしまうからな


364:デフォルトの名無しさん
11/12/27 18:22:37.44
はぁ?

365:デフォルトの名無しさん
11/12/27 19:14:22.55
触らないで、その人は病気なの

366:デフォルトの名無しさん
11/12/29 23:14:58.13
誰か扱いやすいライト管理クラスください

367:デフォルトの名無しさん
11/12/29 23:28:26.28
どういう事ができると「扱いやすい」と思えるの?

368:デフォルトの名無しさん
11/12/29 23:33:56.77
(○○) ライト、ついてますか

369:デフォルトの名無しさん
11/12/29 23:42:03.72
こないだ無灯火でチャリこいでたらおまわりに注意された

370:デフォルトの名無しさん
11/12/30 05:08:09.06
glColor3fで色指定してるのに白になるのですが何処が悪いですか?
ライト使ったらGL_QUADSの方もマテリアル設定しないといけないとか?
URLリンク(ideone.com)


371:デフォルトの名無しさん
11/12/30 09:14:32.68
試す前に人に訊くバカ

372:デフォルトの名無しさん
11/12/30 10:53:42.16
glMaterialしろよ...
あと頂点ライティングだからピクセル単位でグラデーションは出ないのを忘れるな


373:デフォルトの名無しさん
11/12/30 11:33:21.25
>>371
馬鹿じゃないもん><

374:デフォルトの名無しさん
11/12/30 13:11:28.82
阿呆だもん!

375:デフォルトの名無しさん
11/12/31 04:20:20.59
かわいい

376:デフォルトの名無しさん
12/01/04 00:09:50.53
3D空間上にサイズ不定の画像を表示させたいんですが、どうすれば効率よく出来ますか?
今は各ピクセルの色取り出してglVertex3dで描画みたいな効率の悪いことやってる

377:デフォルトの名無しさん
12/01/04 00:12:22.21
テクスチャー使えよって話?

378:デフォルトの名無しさん
12/01/04 00:36:39.41
VisualBasic で GetPixel や SetPixel やってるようなモンか

379:デフォルトの名無しさん
12/01/04 00:41:22.60
>>377
テクスチャって2のn乗じゃないと駄目なんだよね?
800*600とか色々なサイズに対応したいからそこで困ってる

380:デフォルトの名無しさん
12/01/04 00:44:05.04
いや、それかなり古いバージョンのOpenGLだよ
どっからか走らないが最近のはどんなサイズにも対応してるはず

381:デフォルトの名無しさん
12/01/04 00:50:12.44
たとえ2のn乗じゃないと駄目でも、
800*600なら1024*1024のテクスチャ使えばいいじゃん

382:デフォルトの名無しさん
12/01/04 00:54:28.16
ありがとう、初めてテクスチャ使ってみるわ

383:デフォルトの名無しさん
12/01/04 00:55:39.85
今時はiPhoneですら都合の良いサイズのテクスチャ使えるよ。
きっと2のn乗の方が効率は良いんだろうけど、他のやり方するよりはずっとましだと思う。

384:デフォルトの名無しさん
12/01/04 01:39:23.43
ポリ側を800*600の部分で切ったらええやん

385:デフォルトの名無しさん
12/01/04 12:45:07.50
制限聞いただけで思考停止するのがよくないな

386:デフォルトの名無しさん
12/01/04 13:49:48.65
俺は元画像を縦横拡大して2^nサイズにあわせてテクスチャ化しといて元の縦横比でポリ描画してるけど
メモリの無駄感は否めない

387:デフォルトの名無しさん
12/01/04 13:56:06.40
gluBuild2DMipmapsってみんな使わないの?

388:デフォルトの名無しさん
12/01/04 15:39:21.85
gluLookAtの引数のeyeとupをcenterを向いたままcenter中心でupに対して水平、垂直それぞれの方向に
θ度回転させた結果のeyeとupのベクトルを得たいんだけどどんな行列かければいい?

389:デフォルトの名無しさん
12/01/04 15:46:17.79
>>388
脳が拒否する文面なのでまず正確な文章がかければいい

390:デフォルトの名無しさん
12/01/04 15:58:39.65
gluLookAtの引数であるeye, up, centerについて
eye, upを変化させて対象物(centerの座標)を中心に回転させたいです。
イメージとしてはcenterとeye間をヒモで繋いでぐるぐる回す感じです。

回転させる向きは以下の通り

1.upベクトル方向
2.upベクトルと(center-eye)ベクトルの外積方向

1.、2.についてθ度回転させたeye, upを得るためにはeye, upにどんな行列、
を掛ければいいでしょうか。

391:デフォルトの名無しさん
12/01/04 16:11:41.18
openGL的にはeyeをcenter分引いてオブジェクト座標系?に持ってきて回転行列か
でもこれは回転方向と軸方向を一致させないと駄目っぽいか

数学できるならURLリンク(www.cg.info.hiroshima-cu.ac.jp)
このへん見ながら直接eye upを操作させるとか

なんか俺がOpenGL使えてない気がしてきた

392:デフォルトの名無しさん
12/01/04 16:12:43.36
簡単に言うと、

カメラの方向ベクトルを軸にして、θ度回転させたい
= とある任意の軸を中心にθ度回転させたい、って話だろ?

って、くるとクォータニオンの得意分野

393:デフォルトの名無しさん
12/01/04 16:19:22.38
反応が早くて助かります。ありがとうございます。

>>392
クォータニオン・・・がんばります

>>391
このサイトいいですね参考にさせていただきます

394:デフォルトの名無しさん
12/01/05 06:23:42.38
OpenGLの左手座標系を、右手座標系に変換したいときって、
glScalef(1.0f, 1.0f, -1.0f) もしくは、
glScalef(-1.0f, 1.0f, 1.0f) で出来ますよね?間違っていたら指摘お願いします。

で、今Javaで、OpenGL使っているので、JOGLを使っています。
JOGLのバージョンは、Jogamp v2.0 rc5なのですけど、z軸を-1.0倍すると何も映らなくなって、x軸を-1.0倍した結果と違ってしまいます。
これってバグでしょうか?私の勘違いでしょうか?コレだけの情報ではわからないでしょうか?
URLリンク(ideone.com)
97、98行目です。

395:デフォルトの名無しさん
12/01/05 07:10:25.05
DEPTH_TESTをenableにしてZをひっくり返してるからじゃないのかな

396:デフォルトの名無しさん
12/01/05 11:08:29.92
もしくはカメラも反転してるとか

397:デフォルトの名無しさん
12/01/05 17:58:00.95
Xを-1して左手系を右手系なんて聞いたことないな

Zを-1するのだって、行列等の諸々の結果に対して有効であって
途中の計算とかあるなら、Zを-1した所でおかしくなるだけ

詳細を伝えない&自分が理解してないでZに-1スケールしてるだけなら、
聞いた所でちゃんとした挙動にならない&理解出来ないんじゃない?

行列と3D処理を理解して、ちゃんと行列処理を右手系にかえるしかないと思うが?

398:デフォルトの名無しさん
12/01/05 18:51:55.10
Zを-1倍したら奥にあるものがカメラの後ろにくるんだぞ?
カメラの方向変えないとな。

399:デフォルトの名無しさん
12/01/05 19:23:45.21
それはTransrateが入った場合
リンク先を見る限り、Rotationしかしてない

>OpenGLの左手座標系を、右手座標系に変換したいときって、

この質問の仕方で、全然理解してないのが分かる
左手系、右手系とは行列処理の事だろ

例えば左手系前提で作られたモデルがあり、右手系の行列処理でレンダリングしたら
ポリゴンが裏向きになってカリングされてしまうとかの場合
よって最後にスケールZ-1をする事で左手系のモデルを右手系で描画する
とかの場合に、Z-1とかにするんだよ

つかもともとOpenGLの行列処理は右手系
何が左手系なんだ?
頂点って言うんだったら、処理は右手系のまま頂点の2番目と3番目を入れ替えてみれば
CWがCCW、もしくはCCWがCWになって上手く行くかもね

400:デフォルトの名無しさん
12/01/05 19:47:08.18
ハァ?

401:デフォルトの名無しさん
12/01/05 20:08:53.67
そこはハァじゃなく、知りたいことをはっきり訊いた方がいいぞ

402:デフォルトの名無しさん
12/01/05 23:19:02.81
ソースがくさいのだけはわかった

403:デフォルトの名無しさん
12/01/05 23:46:52.62
>>399
俺モデルデータをファイルから読込みむ時に頂点順序反転する処理入れてた・・・・・
scaleで行けたのか・・・・・・・・・・・

404:デフォルトの名無しさん
12/01/06 00:17:02.70
glFrontFace(GL_CCW), glFrontFace(GL_CW)
でいいと思うけど。

405:デフォルトの名無しさん
12/01/06 01:04:12.77
モデルデータを右手系で出力すればおけ

406:デフォルトの名無しさん
12/01/06 09:50:22.84
まあ1年に3回ぐらいはどちらかに統一しろよとは思うよな

407:デフォルトの名無しさん
12/01/06 20:55:06.19
元々、右手系しかなかったのにDirectXが左手系で超速いもんだから一気に広まった。
現在では速度差はあまりないが。
最近ではOpenGLの方が活気付いているけど、DirectX9.0cまでは付け入る隙など無かった。

408:デフォルトの名無しさん
12/01/07 01:06:28.22
左手系で超速い

だってさww

409:デフォルトの名無しさん
12/01/07 03:33:19.15
いつものバカだろ。放っておけ

410:スーパーレフト ◆WIIamZako.
12/01/07 03:46:11.57
もう スーパーレフト ってコテ名乗れよ
酉やるからほら

スーパーレフト#孰扞wPSX



411:デフォルトの名無しさん
12/01/07 10:38:51.16
3D界のレフティという名を名乗っていいぞ。俺が許可する

412:デフォルトの名無しさん
12/01/07 12:58:18.97
>>408
そこは、左手系だから超速いと言いたいんじゃないと思うぞ

当時のOpenGLよりもゲーム向き(=速い)なライブラリだったからみんなが使って、
それがたまたま左手系だったから「左手系」が一気に広まった事を言いたいのだと思う

あくまで、一気に広まった要因は速かったからで、左手系だからと言いたいわけではないだろ
すぐ後で、現在では速度差はあまりないがとも言ってるし

と、俺は読み取ったが、どうだうか

413:デフォルトの名無しさん
12/01/07 13:33:00.52
むしろ「左手系だから速い」って読み取るほうが難しいわ

414:デフォルトの名無しさん
12/01/07 15:43:16.42
左手系の方が速い、とか言ってたやつが最近出没していたからなあ。
「左手系だから超速い」と読み取るのが自然かと。

>>412
それならば、
DirectXが左手系で超速い、ではなく、左手系のDirectXが超速い
にしないと、意味が正しく伝わらない。

複数の意味に取れる文章を書いてはダメって、大学で教わらなかったのか?

415:デフォルトの名無しさん
12/01/07 15:47:36.96
>>414
曖昧な文章だとは思うよ

でも、相手がどう読み取って欲しいのか、は何故か分かってしまう場合が多い

それを分かってて逆に取って馬鹿にするのが 2ch の遊び方の一種なのも知ってる

416:デフォルトの名無しさん
12/01/07 17:44:53.99
>>414
いや、お前の読解力がおかしいだけだろ
「『DirectXは左手系で』超速い」は普通の日本語なら「『DirectXは左手系だから』超速い」という意味には読まないぞ

417:デフォルトの名無しさん
12/01/07 17:58:59.51
書き手がそういうふうに書くアホかもしれない、と考えるとこっちの読解力だけではもう面倒みきれなくなるから最初に感じたままでええのよ

418:デフォルトの名無しさん
12/01/07 19:17:28.54
右手左手DirectXが超速い
ここ一ヶ月のスレの流れ読めばスーパーレフトさんが来たと思うのも自然だろう

419:デフォルトの名無しさん
12/01/07 19:21:38.58
俺は右足系が好きかな。

420:デフォルトの名無しさん
12/01/07 20:12:26.13
百足系の方が

421:デフォルトの名無しさん
12/01/07 20:39:58.82
ここ国語弱い人間いるよな
外人か普段人と接してない人間と睨んでる

422:デフォルトの名無しさん
12/01/07 21:21:08.63
OpenGL の上位ライブラリで、
マルチウィンドウ機能をデフォルトで装備するものってある?

少なくとも GLFW はウィンドウひとつしかサポートしない
GLUT はやってみた人がいるようだが、公式サポートではないらしく注意が多い

423:デフォルトの名無しさん
12/01/07 21:45:23.85
GLUT やら OSG やら Coin3D やら幾らでもあるけど、

> GLUT はやってみた人がいるようだが、公式サポートではないらしく注意が多い

とか言ってるお前にゃ無理だな

424:デフォルトの名無しさん
12/01/07 21:53:02.78
>>423
OS の API や環境に依存しそうな部分はできるだけ触りたくない
しっかりとラッピングしておいてほしいんだ

Haskellでプログラムしてるから、
Haskell用ラッパーの作成にも時間を取られる

GUI構築よりも本来注力したい仕事にさっさと取りかかりたいんだよ

> とか言ってるお前にゃ無理だな

無理だったら別の方法を考えるから、とにかく OSG や Coin3D を調べてみるよ

ありがと

425:デフォルトの名無しさん
12/01/07 21:57:53.94
glutSetWindow つかってるけど簡単実装には便利だよ

426:デフォルトの名無しさん
12/01/07 22:20:59.69
>>425
GLUTは一度入ったメインループから抜け出せない仕様が扱いにくいんだが、
今は背に腹は替えられない状況なんで検討してみる

ありがと

427:デフォルトの名無しさん
12/01/07 22:46:59.29
時々聴くけどglutでMainLoopから抜けたい時ってどんな時なのかな

428:デフォルトの名無しさん
12/01/07 23:04:27.61
終了ボタンでいきなり終了されたら困る時

429:デフォルトの名無しさん
12/01/07 23:24:40.52
まさにそれ。
APIHookするしかないのか

430:デフォルトの名無しさん
12/01/07 23:30:58.53
windowsならatexit()でいけそう

431:デフォルトの名無しさん
12/01/08 00:31:31.41
javaれ

432:デフォルトの名無しさん
12/01/08 10:28:56.50
メモリーリーク検出のために正しい手順で終わりたい時
ってかglutリークもOpenGLもメモリリークしてるがな...

433:デフォルトの名無しさん
12/01/08 11:01:33.55
ペイントソフトとか作ってファイルを保存してないのに終了ボタン押されたら困るだろ?
そういう時にファイル保存の処理をするんだよ

434:デフォルトの名無しさん
12/01/08 11:21:31.83
終了ボタンを自分で作ってるなら、マウスが終了ボタンを押した時の処理をMouseFuncに書けばいいんじゃないの
windowのXボタンのことならatexitで処理すればいいし

435:デフォルトの名無しさん
12/01/08 12:08:01.39
>>434
終了しますか?(はい/いいえ)
って聞かれたことない?

それは置いといて実用目的でGLUT使うのは間違ってる

436:デフォルトの名無しさん
12/01/08 12:12:36.11
Haskell限定だが

GLUTがメインループを持ってるせいで、
一部の同じくメインループを持つFRPライブラリと相性が悪い

またGLUTがイベントドリブンなのも、
いくつかのFRPライブラリとの相性を悪くしてる

437:デフォルトの名無しさん
12/01/08 12:34:06.91
マルチウィンドウを管理して欲しいけどメインループは持たないでくれってのは難しいんじゃないのか
いっそ表示とそれ以外にスレッド分けたほうがスッキリしそう

438:デフォルトの名無しさん
12/01/08 18:56:40.03
atexitだとまたメインループに戻る処理が出来ないだろ馬鹿

439:デフォルトの名無しさん
12/01/08 22:08:21.43
>>438
馬鹿で悪かったな。そんな押されちゃ困るXボタンなら消しときゃいいだろ


440:デフォルトの名無しさん
12/01/09 04:45:06.23
人のことをすぐ罵る男の人って

441:デフォルトの名無しさん
12/01/09 15:32:24.70
ポチっとな

442:デフォルトの名無しさん
12/01/09 17:37:55.40
glutを使ったこんなかっこいいPC demoがあるんだぜ
URLリンク(www.pouet.net)

でも商用ソフトとかでglutを使うのはちょっとどうかと思うよ。
OpenSceneGraphとかUDKとかのゲームエンジンの方がもっと機能が多いよ。

443:デフォルトの名無しさん
12/01/09 18:07:36.17
>>442
>OpenSceneGraphとかUDKとかのゲームエンジンの方がもっと機能が多いよ

レイヤが違うんだから当たり前だろ。せめて理解してから喋れ


444:デフォルトの名無しさん
12/01/11 03:20:30.85
すみません
GLSLを使ってメッシュを表示しているのですが、
2台のPCで結果を確認すると、一方では正常に表示されるのに、もう一方では何も表示されません。

ダメなPC(デスク)
Win7 32bit
RADEON HD5750

正常なPC(ノート)
Win7 64biy
intel HD3000

デバッグするとどちらもGLSLのコンパイルは正常に完了しており、レンダリング中に何のエラーもありません。
ただ、スプライト(板ポリ)を表示する簡単なシェーダだけはRADEONでも正常に動きます。
ポリゴンを表示するシェーダだけがRADEONで動かないのは何が原因でしょう?

445:デフォルトの名無しさん
12/01/11 03:42:34.81
RADEONで動かないシェーダーに原因があるでしょう

446:デフォルトの名無しさん
12/01/11 10:43:26.92
バグがないと仮定したらテクスチャーモードを設定してないとか
確かATI系だけは設定しないと表示されなかったはず


447:デフォルトの名無しさん
12/01/11 18:17:40.41
RADEONってほんとプログラマー泣かせだよな

448:デフォルトの名無しさん
12/01/11 18:30:00.84
そんな事はない。ATIの方が仕様に正しく実装されている
作ったとおりに動くのがATI。正しく作らなかったら正しく動かないのがいい
NVIDIAはわりといい加減に作っても動くけど、それは正しい動作ではない


449:デフォルトの名無しさん
12/01/11 18:39:28.91
             /)
           ///)
          /,.=゙''"/
   /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /
                  nvidia

450:デフォルトの名無しさん
12/01/11 19:00:10.69
せっかくこの話題になったから聞いておきたいんだけど
ATIで動いたシェーダはNVIDIAでも動くってのは正解?
つまり開発環境としてはRADEONの方が無難?

451:デフォルトの名無しさん
12/01/11 20:15:32.80
どちらでも動くソフトを作るならRADEONで動作チェックするしかないな
っていうか融通がきかないんだよRADEONは

452:デフォルトの名無しさん
12/01/11 21:48:35.36
>>444
OpenGLのエラーが出てないか調べたら良いかも。GL_ARB_debug_outputとか。

又は、gDebuggerとか今はタダだから使ってなかったら試してみたらコード変更しなくてもエラーが見つけられるかも。


453:デフォルトの名無しさん
12/01/11 21:49:13.24
3D空間に文字を出力する出来るだけ簡単な方法教えてください
ここの方法を参考に弄ってやってみようとしたけど、できん
URLリンク(www21.atwiki.jp)

454:デフォルトの名無しさん
12/01/11 21:51:39.99
>>450
ドライバの出来次第では?
古いNVのドライバだと対応してないテクスチャフォーマットがあったりもしたよ。

455:デフォルトの名無しさん
12/01/11 21:52:19.33
お前の環境は何だとか一々きかせるな

456:デフォルトの名無しさん
12/01/11 22:03:23.31
>>453
予め必要な文字を描いておいたテクスチャの一部をビルボードに貼って表示すれば良い
これが一番簡単だ

文字の形をした立体オブジェクトを表示させたいのなら、
FreeFontでも使ってフォントのアウトライン(ベジェ曲線)を得て、
それをtrianglizeして表示すれば良い

457:デフォルトの名無しさん
12/01/11 22:07:53.35
>>455
ごめんなさい。Windowsでglut使ってます。WindowsなんでWin32API使ってもいい
>>456
そのテクスチャの方法でやりたいんだけど、その元の文字を画像にしたものの作り方
で簡単に出来る方法が知りたいです。自分で平仮名から漢字まで全部用意するのは
現実的ではないし

458:デフォルトの名無しさん
12/01/11 22:23:38.89
>>457
普通は自分で用意するんだよ
どの文字を必要としているかは人ぞれぞれなんだから

それが面倒だと言うのなら、
例えばTUF-8やShift-JISの何番から何番までの文字を列挙したビットマップを作る
という考え方もある
これならプログラムを書いてある程度自動化できるだろ

スクリプトが書けるテキストエディタで文字を列挙してスクリーンキャプチャを撮るとか

ビットマップからデバイスコンテキストを取って、それに対してTextOutして、
そのビットマップをファイルに保存するとか

459:デフォルトの名無しさん
12/01/11 22:28:02.87
> 例えばTUF-8やShift-JISの何番から何番までの文字を列挙したビットマップを作る
> スクリプトが書けるテキストエディタで文字を列挙してスクリーンキャプチャを撮るとか

え?w 普通OSが用意してる文字をビットマップに書き込むAPIを利用するだろ

460:デフォルトの名無しさん
12/01/11 22:31:53.55
URLリンク(cairographics.org)

461:デフォルトの名無しさん
12/01/11 22:47:53.88
>>459
> え?w 普通OSが用意してる文字をビットマップに書き込むAPIを利用するだろ

どこに笑える要素があるのか、詳しく聞きかせろ

私は「どの文字」をビットマップに描くのかを指定する方法のひとつとして、
連続した文字コードの文字をビットマップに並べるという「考え方」を提案した
文字コードが連続している文字を使えば for ループが使えるからな

それ以外に「どの文字」をビットマップに描くのかを指定する方法があるのなら、
>>457 に提案してやってくれ

あと、スクリーンキャプチャの方法を提案したのは、
あくまでも主目的は文字を3D空間に表示する事であって、
文字が描かれたテクスチャ(ビットマップ)を作る方法は「簡単なら何でも良い」
と解釈したからだ

そして、質問者にとってどのような方法が簡単なのか私は知らない
だから、もうひとつ TextOut 関数を使う考え方も提案した

私は文字を「直接」ビットマップに描く OS の API は知らない
知っているのなら関数名を >>457 に教えてあげるべきだろ
その方がより楽なのは明らかなのだから

462:デフォルトの名無しさん
12/01/11 22:53:18.04
怒りの長文炸裂

463:デフォルトの名無しさん
12/01/11 23:01:36.47
Mac なら CTFrameDraw とかあるけどな。Win は知らん

464:デフォルトの名無しさん
12/01/11 23:31:36.69
DrawText()

465:デフォルトの名無しさん
12/01/11 23:48:29.27
glutBitmapCharacter

466:デフォルトの名無しさん
12/01/11 23:49:01.68
>>453
できない方法ってのは wglUseFontBitmapsW使ってるみたいだし、
3D空間に文字出してクルクルまわしたいとかそういうことじゃないのだよね?
glutならwglGetCurrentDCでhdcもってきてとかそういう話だったりして

467:デフォルトの名無しさん
12/01/11 23:59:33.04
>>453
何ができないのか、まずはそれからだ。

エスパーだけどglLoadIdentityとかglOrthoとかしてないから画面外に文字が出てて
表示されてないだけと見た。

468:デフォルトの名無しさん
12/01/12 00:02:37.94
deprecatedなOpenGL関数使うとどういうまずいことがあるんですか?

469:デフォルトの名無しさん
12/01/12 00:09:33.36
>>468
今は問題ない

470:デフォルトの名無しさん
12/01/12 00:13:37.36
直ちに影響はないんですね
ありがとうございました

471:453
12/01/12 02:23:43.74
ありがとう、教えてもらった方法を参考にして調べながら、DIBSectionとDrawTextを使って
描画したピクセルデータをテクスチャにする方法でやってみると上手くできました。

472:デフォルトの名無しさん
12/01/12 07:37:19.76
ATI RADEON HD5600 Seriesを使用しています。
>>453のサイトで自分も勉強し始めたばかりなのですが、一番簡単な空のウインドウを表示するでなぜかウィンドウ内がスクリーンキャプチャしたようになってしまいます。
2~7までは正常に実行できるのですが、8の円を描画するや目的のスタティックメッシュ編は1の同様ウィンドウがおかしな表示になってしまいます。
上述のようにRADEONのボードが関係あるのでしょうか?

473:デフォルトの名無しさん
12/01/12 07:40:57.03
OSはXPsp3、reeglut、Visual Studio 2010 Express Editionで実行しています。

474:デフォルトの名無しさん
12/01/12 17:44:57.29
これからOpenGLとかDirectXを学ぼうとする者がRADEON使うのはやめれ
時間を無駄にするだけだ

475:デフォルトの名無しさん
12/01/12 18:21:03.45
>>472
空のウィンドウが開くプログラムは画面のクリアすらしてないので、ウィンドウ内がスクリーンキャプチャになってても正常かと

8のプログラムはglutInitDisplayModeでダブルバッファにしているが、
glutCreateWindowより下でやってる。入れ替えれば動くかもね
うちのPC(NVIDIA)ではそうだった

476:デフォルトの名無しさん
12/01/12 19:05:37.80
>>474-475
アドバイスありがとうございます。
glutInitDisplayModeとglutCreateWindowを入れ替えたら無事に円を表示する事ができました!
9.文字列描画も同じ方法で正常に実行できたので以下のプログラムもそれに気をつけてビルドしてみます。
RADEONである事は関係なかったようですね…。

477:デフォルトの名無しさん
12/01/12 19:27:13.12
>>476
そこで続けるのか。OpenGL関係ないことのが多いような気がするが。

478:デフォルトの名無しさん
12/01/12 20:52:17.43
自分は画像処理しかしていませんがみなさんはOpenGLで何をされていますか?

479:デフォルトの名無しさん
12/01/13 00:05:45.82
球面調和関数でおっぱいをレンダリングとか

480:デフォルトの名無しさん
12/01/13 00:08:28.16
>>479
君は正しい道を歩んでいる


481:デフォルトの名無しさん
12/01/14 10:14:44.92
VMware / Ubuntu で「GLUTによる「手抜き」OpenGL入門」の勉強を始めました。
man glBegin でmanを見るには具体的にはどうすればよいのでしょうか?

482:デフォルトの名無しさん
12/01/14 12:09:03.11
>>481
ググったら和歌山大学とかいうFラン大が出てきたがそこの学生か?

483:デフォルトの名無しさん
12/01/14 13:28:35.08
>>482
そのサイト、おっさんで会社員の俺もよくみるが

484:デフォルトの名無しさん
12/01/14 13:44:13.91
manの内容程度ならぐぐれば出るよ
www.google.co.jp/search?q=site%3Aopengl.org+glBegin

485:デフォルトの名無しさん
12/01/14 14:03:13.75
それ以前にVMWare上でUbuntu動かしてるところに突っ込めよ


486:デフォルトの名無しさん
12/01/14 14:14:46.55
>>458
なんで?

487:デフォルトの名無しさん
12/01/14 14:15:59.74
すまん、>>485

488:デフォルトの名無しさん
12/01/14 17:29:06.46
スレの流れを無視しちゃうかもしれないけど
OpenGLで作る Android SDKゲームプログラミング
って本は最悪だった

Amazonで評価が良かったから、買ってみたら
プログラミングのスタイルは悪いわ
後半にいくにしたがって、段々記述が荒くなってくるわで、散々な目にあった

極めつきは、VBOのソースで、
AndroidはJAVAなのに、メモリ割り当てとか無茶苦茶なことをやろうとした挙げ句に
「Sizeof」とか書いてあるの。もうアホかと、バカかと
NDKではなくSDKなのに、Sizeofはねーだろうよ
碌にコンパイルすらしていないのがバレバレ
初心者が買ったら、わけがわからなくて確実に詰むね

こんな本で3000円も取るなんてふざけてる

489:デフォルトの名無しさん
12/01/14 17:56:16.12
ブームだ急げ、今なら売れる、と言う 「勢い本」 の中には、そういう危険な物もきっとある


490:デフォルトの名無しさん
12/01/14 19:06:25.07
>>488
さあ早くAmazonでボロクソにレビューする作業に戻るんだ

491:デフォルトの名無しさん
12/01/14 19:09:57.09
本読まないとJNI使えないようなレベルじゃどっちにしろ何も作れないから大丈夫

492:481
12/01/14 20:56:43.17
481です。初心者の年寄りです >>484 教えていただきありがとうございます。
Unix系の開発環境を使いたくて、VMware + Ubuntu にしました。
man で シンタックスが分かる方法ありましたら教えてください。よろしくお願いします。
それと、皆さんどんな開発環境を使っているのでしょうか?

493:デフォルトの名無しさん
12/01/14 21:23:23.14
俺の Mac では man glBegin は普通に出てきた

494:デフォルトの名無しさん
12/01/14 23:14:31.46
なにそれ

495:デフォルトの名無しさん
12/01/14 23:39:43.06
>>481
"ubuntu manpage OpenGL"でググってみれば

496:481
12/01/15 00:52:30.35
>>495 ありがとうございます。出来ました。

497:デフォルトの名無しさん
12/01/16 21:28:22.24
すみませんglmではMatrixをVectorの右からかけますが、GLSLでは左からかけています。
プログラム内で複数のMatrixを掛けて計算したMatrixはプログラム内のVectorを変換するのには使えますが、
シェーダーでは計算の順序が違うのでおかしなことになってしまっていると思います。
1つのMatrixをプログラム内とシェーダー内両方で使うにはどうすればよいのでしょう。

498:デフォルトの名無しさん
12/01/16 21:42:16.15
しつこいなぁ

499:デフォルトの名無しさん
12/01/16 21:58:18.35
>>497
行列を転置させる

500:デフォルトの名無しさん
12/01/16 22:17:35.70
transposeですね!ありがとうございます^^

501:デフォルトの名無しさん
12/01/16 22:49:01.36
>>498
問題をわかってないのは君だけだと思うよ

502:デフォルトの名無しさん
12/01/16 22:53:04.82
glmの行列がどんなんか知らないけど、row-majorならそのまま使えるんでないの?

503:デフォルトの名無しさん
12/01/16 23:02:01.86
glmがどんなのか知らんが

直交座標系で、例えばある回転行列の右からベクトルを掛けた時に
そのベクトルが時計回りに回転するように見える場合、
もし(ベクトルを転置して)左からその回転行列に掛けたならば、
逆向きに回転するように見える

同じ向きに回転するように見せるには、
その回転行列も同時に転置させなければならない

row-major か column-major かの話とはまた別だ
メモリレイアウトはそのまま使えるかも知れない(私は知らないが)

504:デフォルトの名無しさん
12/01/16 23:26:38.38
ベクトルを転置する話なんて誰もしてないのに…

505:デフォルトの名無しさん
12/01/16 23:41:25.25
3Dやるなら最低でも線形代数やっといた方がいいと思う

506:デフォルトの名無しさん
12/01/16 23:43:43.90
最低が線形代数ならそれ以上は何?

507:デフォルトの名無しさん
12/01/16 23:44:38.30
量子力学

508:デフォルトの名無しさん
12/01/16 23:57:29.62
>>504

>>497
> glmではMatrixをVectorの右からかけますが、GLSLでは左からかけています

行列の右からベクトルを掛けるなら、
そのベクトルは意味上は列ベクトルだ

それを同じ行列の右から掛ける為には、
意味上は行ベクトルに転置しないといけない

ここでベクトルの転置の話が出てくる

しかし、それは今回の本質的な問題ではないため、
私も(ベクトルを転置して)と括弧で括った

今回の話がベクトルではなく行列の転置の話であることは承知している

理解していただけだろうか

509:502
12/01/17 00:13:44.56
GLSLは列ベクトルの左に行列をかける&行列の配列への格納はcolumn-major、
glmは(497によると)行ベクトルの右に行列をかける、
なのだからあとは
glmの行列がrow-majorならそのまま配列が使える
glmの行列がcolumn-majorなら転置の必要がある
んじゃないの? 話が別ってなんで?

510:デフォルトの名無しさん
12/01/17 02:56:36.19
glm使ったこと無かったのだけど、

URLリンク(glm.g-truc.net)
mat4はcolumn-major
translate,rotateなどの機能も用意されているので
行ベクトルに右から掛けるのではなく、列ベクトルに左から掛けるほうが良いっぽい

vec3 a,b;
mat4 M;
a = b * M; だとbを行ベクトルとして計算し、
a = M * b; だとbを列ベクトルとして計算するみたい


511:デフォルトの名無しさん
12/01/17 07:42:30.01
>>509
以下の2つの事は本質的に全く別の事だ

・数学的な意味でのベクトル-行列の積の順や行列の転置

・数学的な行列をたまたまメモリにシーケンシャルに配置して表現しており、
それがたまたま一方はrow-majorでもう一方はcolumn-majorであり、
同時にたまたま一方が行列に右からベクトルを掛ける表記をなぞらえており、
もう一方が行列に左からベクトルを掛ける表記をなぞらえている為に、
一方の計算をもう一方へ移植するのに行列の転置「処理」を必要とせず、
そのままのメモリレイアウトで移植可能である(かも知れない)事

簡単に言えば、数学的な計算と、
メモリレイアウトと内部処理の関係でプログラマが仕事を端折れる事、
これらは全く別だという事

だからしっかりと分けて、まずは数学的な意味での計算の仕組みを理解し、
その後でたまたま今回は仕事を端折れる(かも知れない)事を理解すべき
逆順で理解しようとすることは結局は遠回りになる

>>497 は質問文の書き方や内容、また >>500 のレスから察するに、
数学的な意味での計算の仕組みを「プログラムに落とし込める」ほどには
理解できていなかったと見える(まだ今でも理解はおぼろげだと思う)

であれば、その時点でのrow-majorなどの話は混乱の元ではないだろうか

512:デフォルトの名無しさん
12/01/17 10:38:28.55
「row-majorならそのまま使える」と、「数学とメモリレイアウトは別の話だ」
ってのはそれこそ別の話じゃん。
あんたは個々の言ってる事は正しいんだけど、話の筋がズレてるんだよ。

513:デフォルトの名無しさん
12/01/17 11:08:50.37
>>510
つまり最初からGLSLに合わせた使い方すればokと。

514:497
12/01/17 11:59:38.76
つまりglmは右からも左からも行列を掛けられるということですね
昨日は左から掛けたらコンパイル通らなかったんですが、いま試すとできました
何か勘違いしていたんですね

515:デフォルトの名無しさん
12/01/17 12:45:21.48
>>512
> それこそ別の話じゃん

初めから別の話だと >>503 ではっきり言っている
メモリレイアウトはそのまま使えるかも知れないとも言った
行列の転置の話とも混ぜてはいない
レス内の上下でしっかりと行を分け、文脈を分けている

そして >>509 で「話が別なのは何故か」という趣旨の質問を受けた

だから >>511 で私が話は別と言った「理由」を説明した
これらが別の話だと認識しなければ理解できないからと

私が最初に話し、それに対して質問を受け、それに応えた
応答に問題があるのなら、何が問題なのかはっきりと指摘して欲しい

516:515
12/01/17 12:46:37.61
>>512

ちなみに、row-major というのはメモリレイアウトの範疇の話だ

これに異論があるのか?

517:デフォルトの名無しさん
12/01/17 20:22:17.60
glmってexpression template使ってないの

518:デフォルトの名無しさん
12/01/17 20:36:41.99
もちろんそうよ

519:デフォルトの名無しさん
12/01/17 21:57:12.51
Expression Templateっつうもんがあるのか
でもあんまり必要性を感じないな
巨大な配列使わなければいいだけ

520:デフォルトの名無しさん
12/01/17 22:11:40.53
そういう問題ではない…。

521:デフォルトの名無しさん
12/01/18 08:21:50.32
海外ゲームの日本語化をしていてフォントファイルらしきものがあったんですが
拡張子が「glf」だったんです。
これはglfontって事ですかね?編集って出来ます?

522:デフォルトの名無しさん
12/01/18 08:51:12.16
URLリンク(students.cs.byu.edu)

ここのアプリで作成できる

523:デフォルトの名無しさん
12/01/18 13:30:34.39
>>522
ありがとうございます。

字数制限がキビシー

524:デフォルトの名無しさん
12/01/18 17:29:54.73
LINEを描くとき色が中間で分かれるようにするにはどうすればいいですか?
Smoothだとグラデーションになるし、Flatだと中間で分かれないんですよね

525:デフォルトの名無しさん
12/01/18 17:30:43.79
texcoord つかって、シェーダで色分けろ。

526:デフォルトの名無しさん
12/01/18 17:52:28.58
2回LINEすればおけ

527:デフォルトの名無しさん
12/01/18 18:14:48.37
回答ありがとうございます。
やってみます。

528:デフォルトの名無しさん
12/01/18 18:36:32.76
シェーダなしでも2色のテクスチャをGL_NEARESTで使えば

529:デフォルトの名無しさん
12/01/22 12:05:15.83
GLSLのコンパイル時間の長さにイラッとくる

530:デフォルトの名無しさん
12/01/22 12:06:58.53
そんな頻繁にコンパイルするシステムってあるの?

531:デフォルトの名無しさん
12/01/22 13:10:16.32
ShaderTreeみたいなツールとか

532:デフォルトの名無しさん
12/01/22 21:09:06.77
glsl内で回転行列(Z軸)を定義するとなんか30度くらい余計に回転してる感じなんだけど

533:デフォルトの名無しさん
12/01/23 01:00:50.29
間違いなくコーディングミス

534:デフォルトの名無しさん
12/01/23 02:11:26.03
大方、度で角度を指定してるんだろ
ラジアンにしてるか?

535:デフォルトの名無しさん
12/01/23 02:19:38.49
それだ
まあ、言われなくても自分で気づいてただろうが

536:デフォルトの名無しさん
12/01/27 21:54:19.08
史上これほどまでに傲慢な返答はあるまい

537:デフォルトの名無しさん
12/01/27 21:59:23.68
宣言もないのに同一人物だと思い込むのやめたほうがいいよ

538:デフォルトの名無しさん
12/01/27 22:05:06.25
2chのレスは自分のも含めて全て人工知能だと思ってる

539:デフォルトの名無しさん
12/01/27 22:39:13.43
マルバツでもやってろ

540:デフォルトの名無しさん
12/01/27 22:47:51.06
でも>>532>>535が同一人物だと考えると傲慢すぎて面白いよね
一種の憧れまで感じる

541:デフォルトの名無しさん
12/01/28 01:53:53.08
OpenGLを使ったエフェクトのサンプルソースが見れるサイト教えてください

542:デフォルトの名無しさん
12/01/28 16:13:39.70
えっち

543:デフォルトの名無しさん
12/01/28 20:00:05.82
Celeron G530 の Intel HD Graphicsで glsl使われてる方いますか?サンプルとかちゃんと動きますか?

544:デフォルトの名無しさん
12/01/29 11:45:18.85
GLSL 1.2 だから結構動かないのあるんじゃないかな


545:543
12/01/29 16:34:19.12
>>544
なるほど、glslのバージョンは見てませんでした。ありがとうございます。
GeForce付きPCを考えます。

546:デフォルトの名無しさん
12/01/29 23:24:38.84
誰か、BCCでfreeglut使う方法教えてくれ

547:デフォルトの名無しさん
12/01/29 23:32:25.69
makeファイル見ながらソースコンパイルすればいい

548:デフォルトの名無しさん
12/01/29 23:34:34.72
VC++が無料かつ使用制限なしで使えるのに作成したバイナリを公開する事も出来ないBCCを選択する意味がわからない

549:デフォルトの名無しさん
12/01/30 00:32:18.44
VC++Expressって無料なの?商用でも?


550:デフォルトの名無しさん
12/01/30 01:03:24.93
無料だよ

551:デフォルトの名無しさん
12/01/30 20:51:35.30
VC++インストールしたくない

552:デフォルトの名無しさん
12/01/30 21:13:21.84
なんで?


553:デフォルトの名無しさん
12/01/30 22:15:18.56
わがまま言うな
インストールしなさい

554:デフォルトの名無しさん
12/01/30 22:31:58.19
依存関係の稼動テストするのに開発環境と共にいつの間にかインストールされたCOMやらNETやらOLEやらごちゃごちゃ入れられて
ライブラリ使用の有無だけじゃ判断つけられずOSをもう1個買うかなんかしないとロクにテストも出来なくなるからねー

555:デフォルトの名無しさん
12/01/30 22:40:49.68
そうやって人生無駄にしていった人間を何人も知っている

556:デフォルトの名無しさん
12/01/30 22:46:37.10
>>554
その割りには VC++ で作られた普通に動く無料アプリって多いよな

557:デフォルトの名無しさん
12/01/30 22:49:39.64
bccはまじでオススメできない
おとなしくVCいれとけ
せめてMinGWかcygwin


558:デフォルトの名無しさん
12/01/30 23:09:34.14
bccはインストール権限なくても展開するだけで動くからじゃね?
USBメモリでこっそり持ち込んで…
に最適

559:デフォルトの名無しさん
12/01/30 23:20:17.61
>>554
おまえはそんな大層なプログラムを書くんか
そんなん気にするよりコーディング環境を良くして
1行で多くプログラムを書けよ
そっちのがお前さんの為になると思うよ

560:デフォルトの名無しさん
12/01/30 23:22:20.81
でも気持ちはわかる。

561:デフォルトの名無しさん
12/01/30 23:24:03.98
>>558
確かにその通りなんだが、それだけでは >>554 の問題は解決しないような・・・

562:デフォルトの名無しさん
12/01/30 23:24:28.62
>>559
1行で多く→1行でも多く

563:546
12/01/31 00:03:26.53
>>558 の通りUSBメモリに入れてどこでも開発できるから。

複数のPCで設定とか揃えるの面倒。

564:デフォルトの名無しさん
12/01/31 00:24:30.20
USBHDDに全部入れりゃVC++で解決

565:デフォルトの名無しさん
12/01/31 07:44:53.77
usbとかってはなしならなMinGWでいいじゃん


566:デフォルトの名無しさん
12/01/31 21:38:17.94
開発環境といったらLSI C-86試食版一択だろう

567:デフォルトの名無しさん
12/01/31 22:49:37.98
なつかしい
まじでお世話になったなLSI C-86試食版

568:デフォルトの名無しさん
12/02/01 00:17:16.21
OpenGL使ってiPhoneアプリ作ってるけどなかなか難しいね^^

569:デフォルトの名無しさん
12/02/01 00:18:46.84
黙れ^^

570:デフォルトの名無しさん
12/02/01 00:50:48.37
いーえすつー!^^

571:デフォルトの名無しさん
12/02/01 00:55:50.97
iPhone()笑

572:デフォルトの名無しさん
12/02/01 02:07:25.37
僕はCP/MでBDS-Cです。

573:デフォルトの名無しさん
12/02/01 03:17:35.57
iPhone(笑)
iPhone()笑
iPhone()     笑
iPhone()         笑
iPhone()

574:デフォルトの名無しさん
12/02/01 03:39:34.16
お前らまだぴこぴこやってんのか...

575:デフォルトの名無しさん
12/02/03 19:54:40.70
android()

576:デフォルトの名無しさん
12/02/04 01:46:49.25
>>573
あほでしょあなた。。w

577:デフォルトの名無しさん
12/02/04 10:54:06.15
悔しかったん?

578:デフォルトの名無しさん
12/02/04 11:13:16.10
あほでしょあなた。。w
あほでしょあなた。。。。w
あほでしょあなた。。。。。。w
あほでしょあなた。。。。。。。。

579:デフォルトの名無しさん
12/02/04 13:03:09.26
>>577
はぁぁぁぁ?

580:デフォルトの名無しさん
12/02/04 14:48:56.86
はぁぁぁぁ?
はぁぁぁぁ?      !
はぁぁぁぁ ?    !
はぁぁぁぁ   ?!
はぁぁぁぁ !    ?
はぁぁぁぁ!

581:デフォルトの名無しさん
12/02/06 23:05:07.66
いいからOpenGLの話しろ

582:デフォルトの名無しさん
12/02/06 23:23:23.41
ウィンドウサイズを変更した時に
ウィンドウ全体のピクセルを拡大することってできる?

たとえば

■□
□□

■■□□
■■□□
□□□□
□□□□

こんな感じ

583:デフォルトの名無しさん
12/02/06 23:49:45.65
別コンテキストにレンダしてそれをGL_NEARESTなテクスチャとして貼るとか?
それかシェーダ

584:デフォルトの名無しさん
12/02/07 00:35:05.44
ビューポート

585:デフォルトの名無しさん
12/02/07 00:36:33.77
ビューポート

586:デフォルトの名無しさん
12/02/07 00:40:46.52
>>583
(´c_,`o)

587:デフォルトの名無しさん
12/02/07 21:57:46.82
ビューポートで出来んだっけ??

588:デフォルトの名無しさん
12/02/07 22:49:59.50
できんの?!

589:デフォルトの名無しさん
12/02/07 22:57:19.10
ViewPort変換ってフラグメントシェーダが走った後に処理されるのか勉強になるよ

590:デフォルトの名無しさん
12/02/07 23:10:42.87
ビューポートの操作ではピクセルが拡大されたように見せることは無理だ

591:デフォルトの名無しさん
12/02/08 00:31:36.96
>>590
アホたれ

592:デフォルトの名無しさん
12/02/08 00:53:23.79
>>591
ソースは?

593:デフォルトの名無しさん
12/02/08 00:56:28.35
ソース乞食ktkr

594:デフォルトの名無しさん
12/02/08 01:15:12.06
また出来ないことを出来ると言い張る知障が現れたか
勘違いで発言した後引くに引けなくなって言動が破綻してくいつものパターン

595:デフォルトの名無しさん
12/02/08 01:53:36.44
URLリンク(wisdom.sakura.ne.jp)

596:590
12/02/08 07:43:57.39
>>591
では、もう少し詳しく説明してやる

ビューポートは、正規化デバイス座標系(NDC)での座標を
ウィンドウ座標系での座標へどう変換するかを指定するものだ
この変換をビューポート変換という

ビューポート変換は線形変換だ
従って、ウィンドウ座標系のあるピクセルとその隣のピクセルに
それぞれ変換されるNDCの座標は、それぞれ異なるはずである

しかし、仮に >>582 のやりたいことをビューポート変換で行う事を考えれば、
それはあるピクセルとその隣のピクセルにNDCの同じ座標を割り当てる事になる
だが、先ほども言ったようにビューポート変換は線形変換なので矛盾する

従って、>>582 のやりたいことをビューポート変換で実現するのは不可能である

逆にこの事から、どうすべきかは必然的に見えてくる
要するにウィンドウ座標系のある隣同士のピクセルに
それぞれ変換されるNDCの2つの座標が同じ値が示しすようにするしかない

597:590
12/02/08 07:51:17.08
>>596
> 逆にこの事から、どうすべきかは必然的に見えてくる
ここの件は間違いだった
シェーダーを用いればこの件の結論は覆る

しかし、ビューポート変換では実現できないことは確かだ

598:デフォルトの名無しさん
12/02/08 08:58:54.95
馬鹿なん?

599:デフォルトの名無しさん
12/02/08 09:19:41.90
元々の「ウィンドウ全体のピクセルを拡大」てのが意味不明瞭だしなぁ。
普通に考えればビューポート変えてもピクセルを拡大なんてできないわけだけど、
テクスチャを一枚表示してるだけのプログラムなら、ビューポート変えれば
「ピクセルを拡大」したように見えないこともないかもしれないし。

ていうかビューポート、ビューポート言ってる人達(達?)は、一体何を考えてるんだろうか。
一言レスとか悪態とかしか書けないあたり、具体的な策を持ってない人だろうか。

600:デフォルトの名無しさん
12/02/08 09:20:21.59
何のためのプロジェクション行列だよ…

601:デフォルトの名無しさん
12/02/08 09:22:03.60
>>599
基本からやり直せ

602:デフォルトの名無しさん
12/02/08 09:22:08.73
そりゃ解決法はいくらでもあるだろう・・

603:デフォルトの名無しさん
12/02/08 09:47:14.85
>600-602
ああ、なるほど、うん、大体分かった…

>>582
とりあえずですね、残念ながらあなたの説明では、あなたのやりたい事が分からないですよ。
もしウィンドウサイズ変えても描画領域が変わらなくて困ってる、あるいは絵を大きくしたいだけならglViewportだし、
582の図を愚直に解釈して本当にピクセルを拡大したいなら、別のやり方を考えないといけないし。
(582の図は2x2->4x4ですけど、例えば2x4->9x3の場合ならどうなって欲しいの?とか)

604:デフォルトの名無しさん
12/02/08 10:56:25.78
なんだギザギザにしたいってだけか。
描画に関する事を全てテクスチャにオフスクリーンレンダリングして
GL_NEARESTのミップマップにして後はウインドウサイズにビューポート合わせて
ウインドウサイズにテクスチャをストレッチして描画すればいいだけだろJK

605:デフォルトの名無しさん
12/02/08 11:01:53.42
“だけ”にしちゃ長いなw

606:デフォルトの名無しさん
12/02/08 15:58:15.97
いやいやモザイクにしたいという方が間違えだろ

607:590
12/02/08 19:37:45.67
>>582 のやりたい事なんて明確だろ

「ピクセルを拡大する」と言っている

608:デフォルトの名無しさん
12/02/08 20:27:13.42
>>604
>>583

609:デフォルトの名無しさん
12/02/08 20:48:40.96
別コンテキストなんて誤解を生みそうな用語使っちゃってる回答にアンカ振られても

610:デフォルトの名無しさん
12/02/08 20:54:16.66
glReadPixels と glPixelZoom と glDrawPixels で解決

611:名無し
12/02/09 16:26:19.40
プログラミング超初心者です。
openGLで「openGl 手抜き入門」を用いて勉強していてラジコンティーポットという課題をやっています。

まったくわからないので動かし方を教えてもらえたら嬉しいです
お願いします。

612:デフォルトの名無しさん
12/02/09 16:44:17.03
「openGl 手抜き入門」ってなんだ

613:デフォルトの名無しさん
12/02/09 16:46:00.68
ggrks

614:デフォルトの名無しさん
12/02/09 16:50:16.92
>>611
「まったくわからない」じゃどこまでで来て、どこからができないのか答える方がまったくわからないので答えようがない。
もしわからないのが操作の部分ならOpenGLとは切り離して考えるべきじゃないだろうか。

615:名無し
12/02/09 17:00:19.78
URLリンク(www.wakayama-u.ac.jp)
動かすためのプログラミングがわかりません

616:名無し
12/02/09 17:02:33.92
動かすために何を書いたらいいのかがわかりません

617:デフォルトの名無しさん
12/02/09 17:04:04.47
抽象的すぎて何がわからないのかわからないのでアドバイスできません.
具体的に分からない箇所を言ってください

618:名無し
12/02/09 17:06:24.04
どうやったらラジコンティーポットが8の字に動くんですか?


619:デフォルトの名無しさん
12/02/09 17:06:24.64
openGlより前にプログラミングの基礎を勉強しようか

620:名無し
12/02/09 17:10:20.95
基礎勉強してたらこのラジコンティーポットを動かす課題の提出日が過ぎちゃいます


621:デフォルトの名無しさん
12/02/09 17:13:01.00
知るか。

622:名無し
12/02/09 17:17:02.76
知ってください
誰かお願いします。

ラジコンティーポットを操作できるようにしたいんです。

623:名無し
12/02/09 17:29:10.15
URLリンク(www.wakayama-u.ac.jp)
これの課題の答え教えてください。

624:デフォルトの名無しさん
12/02/09 17:31:17.12
宿題は宿題スレへ

625:デフォルトの名無しさん
12/02/09 17:32:23.22
プログラムのビルド&実行ができてるのかすら怪しいレベルだな…

626:デフォルトの名無しさん
12/02/09 17:34:59.83
ちなみに期限はいつだ?

627:名無し
12/02/09 17:37:41.40
明日です

628:デフォルトの名無しさん
12/02/09 17:37:54.99
ラジコンティーポット OpenGL 解答
とかでググッたら出てくるんじゃねの?とか思ったら...

URLリンク(detail.chiebukuro.yahoo.co.jp)

629:デフォルトの名無しさん
12/02/09 17:39:04.07
一連の流れにワロタw

630:デフォルトの名無しさん
12/02/09 17:53:26.91
っていうか床井先生のサイトじゃねーか
つうか、何にでもstatic付けるのな
そんなにインスタンス必要か

631:名無し
12/02/09 18:05:47.23
おねがいします

632:デフォルトの名無しさん
12/02/09 18:06:43.47
>>611
正解は>>624

以下個人的な見解
質問の仕方から見るに、あなたはこの課題に向き合うレベルに全く達してないので
仮にこれをクリアしたとしても、すぐにまた詰みます。
課題と単位は諦めて基礎からやり直すのが宜しいでしょう。

633:デフォルトの名無しさん
12/02/09 18:57:28.34
急がば回れ
C/C++の基礎から学んでOpenGLに入門したらよろしい

634:名無し
12/02/09 19:03:58.29
課題さえ終わればこの先プログラミングをやる機会は少なくなるので…

635:デフォルトの名無しさん
12/02/09 19:07:18.02
スレチ。消えろ

636:デフォルトの名無しさん
12/02/09 19:23:50.51
>>634
問題はそこではなく、これを教えたところであなたの成長を期待する事が全くできないって事です。
不良物件に時間を投資したいと思う人はいないでしょう?

637:デフォルトの名無しさん
12/02/09 19:39:56.23
プログラミングやらない人に教えるのはばからしいわな

638:デフォルトの名無しさん
12/02/09 20:31:34.09
そのために、金がある。

639:デフォルトの名無しさん
12/02/09 20:43:56.03
宿題スレ行ったのかな?と思ってあっち覗いたらそこそこ荒れててわらた

640:デフォルトの名無しさん
12/02/09 21:39:43.36
むしろ、あっちの方で先に聞いててワロタ

641:デフォルトの名無しさん
12/02/09 22:51:25.21
5分でマルチポストとか…

>>638
金払うなら仕事してもいいかも。
実装で5000円、相手するのが面倒そうなので二万円、
合計は切り上げて三万円の請求てとこだナ。

642:デフォルトの名無しさん
12/02/09 22:58:11.48
つうかsin,cos関数が分かれば組めるだろうに
高校生レベルじゃないか

643:デフォルトの名無しさん
12/02/09 23:06:42.29
>>642
多分だけど、分からないのはそこじゃなくて、もっとプログラムの根本的な部分だと思う。
ティーポットを奥に向かって一定速度で動かせ。っていうのすら出来ないんじゃないかなぁ。

644:デフォルトの名無しさん
12/02/09 23:16:44.98
>>611
まだいるか分からないけど、徹夜してでも頑張る気があるなら、SkypeかGoogleChatの
アカウントでも晒してくれれば、教えてあげてもいいよ。
ただし、段階を踏んで教えてあげることはできるけど、答えを教えるつもりは一切無いです。

645:デフォルトの名無しさん
12/02/09 23:28:44.69
あっちのスレで学校の掲示板にスレ晒されてたので来ないでしょう

646:644
12/02/09 23:58:21.40
そんじゃ、寝ますわん。

647:デフォルトの名無しさん
12/02/10 00:06:23.39
いやん、ねないでえん

648:デフォルトの名無しさん
12/02/10 18:23:17.19
c#でOpenTK使ってテクスチャを張ろうとしたんだが、
LinuxでC++でやってた通りにやった積もりなのになかなかテクスチャが張れなくてえらい苦労した。
ふと、400x400の画像を512x128の画像に替えたらあっさり。
なんてこったいw

649:デフォルトの名無しさん
12/02/10 18:52:59.04
ほとんどの3Dで、テクスチャサイズは2のn乗にあわせないと不具合起こすと言うよね。

650:デフォルトの名無しさん
12/02/10 19:09:53.79
古い環境だとな。

651:デフォルトの名無しさん
12/02/10 20:17:36.67
テクスチャは2のn乗で作るのが常識だろ

652:デフォルトの名無しさん
12/02/10 20:29:59.73
今はそんなことない

653:デフォルトの名無しさん
12/02/10 21:42:40.70
そうやって一生自分の環境でしか動かないもの作ってるんだ

654:デフォルトの名無しさん
12/02/10 21:48:18.69
ターゲットにする環境はそれぞれで違うわけだし、
新しい機能だって必要に応じて使えばいいだろ。

今時はiPhoneとかでも好きなサイズのテクスチャ使えるよ。
パフォーマンス的に有利かどうかは知らんけど、
そこは目的に合わせてだよね。



655:デフォルトの名無しさん
12/02/10 22:43:49.84
てかエラーチェックちゃんとしようネ

656:デフォルトの名無しさん
12/02/11 01:06:23.53
言い訳がましい

657:デフォルトの名無しさん
12/02/11 02:01:58.21
まぁ、レンダリングの中に一つくらいは、お守りのつもりでglGetError()入れといた方が、結果的には助かるよね。

658:デフォルトの名無しさん
12/02/11 03:40:10.89
つARB_debug_output


659:デフォルトの名無しさん
12/02/13 13:10:05.24
gl_texture_rectangleはATI系で異常に遅かったり等あったから、
至近の2のn乗サイズのテクスチャ作って転送してUVで切り出すようにしてるわ


660:デフォルトの名無しさん
12/02/13 16:00:39.70
メタセコイアで作ったモデルをC++から読んで描画する所までは出来たんだが
ここから、モデルをアニメーションさせたりするにはどうすりゃいいんだ…。

(; ゚д゚)ぼ、ボーン?ってレベルなんだが、
なんか参考になりそうな書籍などありましたらご教示お願いいたします。

661:デフォルトの名無しさん
12/02/13 19:49:15.49
マルペケ

662:デフォルトの名無しさん
12/02/14 00:18:15.65
>>660
行列またはクォータニオンなんかの頂点位置移動(回転)情報を時系列に並べた
モーションデータをまず用意して… それを読んで毎フレームごとに
再帰的にボーン情報に適用させ、各ボーンに所属する頂点位置を更新する感じ

だが、CPUでそれらを毎フレームごとに計算 (~ glMapBuffer で VertexBuffer 取り出して計算更新した後、glUnmapBuffer)
とかしてると、速度的に話にならないので、必要な情報渡してシェーダでスキンアニメーション処理書く感じ

具体的には浮動小数点フォーマットのテクスチャをデータバッファに使って渡したり、そこまで行列値の物量多く無いなら
普通に uniform で渡したりしつつ、 attribute で各頂点ごとに所属する(ボーン)行列インデクスとか渡して、
シェーダ側で計算して描画。 みたいな。

…そんな具体的な方法よりも、もっと手前の基本的な処理や話なら、マルペケその他の初心者向け記事をどうぞ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch