OpenGLスレ Part15at TECH
OpenGLスレ Part15 - 暇つぶし2ch2:デフォルトの名無しさん
10/11/17 20:24:35
== 過去スレ ==
Part14: スレリンク(tech板)
Part13: スレリンク(tech板)
Part12: スレリンク(tech板)
Part11: スレリンク(tech板)
Part10: スレリンク(tech板)
Part 9: スレリンク(tech板)
Part 8: スレリンク(tech板)
Part 7: スレリンク(tech板)
Part 6: スレリンク(tech板)
Part 5: スレリンク(tech板)
Part 4: スレリンク(tech板)
Part 3: スレリンク(tech板)
Part 2: スレリンク(tech板)
Part 1: URLリンク(pc3.2ch.net) (dat落ち)

== C/C++以外から使うには ==
Rubyから    --> ruby-opengl
Pythonから   --> PyOpenGL
Javaから    --> JOGL
JavaScriptから --> ???
Haskellから  --> ???
C#等、.NET系  --> OpenTK

3:デフォルトの名無しさん
10/11/19 03:09:34
>>1
お疲れ様です。
テンプレにglm, OpenSceneGraph, sfmlあたりを入れておくといいんじゃないでしょうか。
opengl.orgから直リンクされていますが
URLリンク(www.opengl.org)
URLリンク(www.opengl.org)
も役立つので入れてみるのはどうでしょうか。

4k intro野郎はC/C++の標準ライブラリを使わないのはもちろんの事、
glutとかglewとか使わずにウィンドウやコンテクストをwin32apiを直接呼び出して初期化し
wglGetProcAddressで必要な関数のみを拾ってくるんだよ。

4:デフォルトの名無しさん
10/11/19 17:02:19
OpenSceneGraph 楽しいよ。

OpenGL の形を保ったまま便利な皮被せてるから、OpenGL の空気そのままで扱える。

5:デフォルトの名無しさん
10/11/19 19:10:30
Windows環境で使用するんですが、OpenGLでレイヤードウィンドウの描画はできますか?
オフスクリーンレンダリングしてコピーではなく直接ウィンドウに描画したいです

6:デフォルトの名無しさん
10/11/21 03:29:24
4.1とかの最新バージョンってどうすればプログラム作れるの?

7:デフォルトの名無しさん
10/11/21 17:04:59
>>6
OpenGL4.1に対応したGPUを取り付ける
OpenGL4.1に対応したドライバをインストール
OpenGL4.1に対応したglewをインストール
OpenGL4.1に対応したプログラマを雇う

8:デフォルトの名無しさん
10/11/21 17:47:30
>>7
上2つとドキュメントは分かったけどどのライブラリをインストールすれば良いか分からなかったんだよねw
ありがとう

9:デフォルトの名無しさん
10/11/22 17:31:41
>>5
無理

10:デフォルトの名無しさん
10/11/22 21:06:30
オフスクリーンレンダリング先をどこにするかで
直接に近い形にはできると思うけどね。

11:デフォルトの名無しさん
10/11/24 05:07:26
>>5
無理


12:デフォルトの名無しさん
10/11/24 19:32:22
必死だなw

13:デフォルトの名無しさん
10/11/24 20:03:40
>>10
マジで無理だと思っていたので
方法があるなら教えて下さいお願いします。orz

今のところ手元で使っている方法は、
GL_BACK に描画→SwapBuffer() せずに glReadPixel() でRGBA画像をメモリに書き出し
→UpdateLayeredWindow() でデスクトップに描画

または、
FBO→に描画、glReadPixel() でRGBA画像を(以下略)

の2通りです。

14:デフォルトの名無しさん
10/11/25 00:28:12
PIXELFORMATDESCRIPTOR のフラグに
PFD_DRAW_TO_BITMAP |PFD_SUPPORT_OPENGL |PFD_SUPPORT_GDI,
を指定する。(手元にソースが無いので合ってるか確認してない。)

DIB を作成して wglMakeCurrent() でDIBのDCをセットする
オフスクリーンレンダンリングが DIB に対して行われるので。
DIBのDCでUpdateLayeredWindow() を行う。

DIB×OpenGLのコードは↓参照。
URLリンク(son-son.sakura.ne.jp)

15:デフォルトの名無しさん
10/11/25 05:06:50
DRAW_TO_BITMAPは常にソフトウェアレンダリングになるんじゃなかった?

16:13
10/11/26 01:26:39
>>14
ありがとうございます!

>>15
確かそうだったかもと思ったんですが
wglChoosePixelFormatARB() で検索すれば
WGL_DRAW_TO_BITMAP_ARB と WGL_FULL_ACCELERATION_ARB が
同時に True の PixelFormat が取れるかも…。(未確認)
手元の RadeonHD4850 で試してみます。

17:デフォルトの名無しさん
10/11/26 19:22:02
なあOpenGLってハードウェア(GPU)と通信するためのAPIだよな。
これを人間が使って3Dを描画するのが間違えてないか。
CPUで言えばアセンブリで直接ゲームを作るようなもの。
3DにもC++に相当するような「高級言語」が必要だと思うのだが、どうだろうか?


18:デフォルトの名無しさん
10/11/26 19:55:02
それはいわゆるゲームエンジンみたいなものじゃないのかい
いろいろあると思うけど

19:デフォルトの名無しさん
10/11/26 20:43:08
>>17
たとえば、どのように表示するために、どのように記述できると
「C++に相当するような高級言語」と言える?

20:17
10/11/26 21:24:06
少なくとも、
- レンダリングコマンドが呼び出し順に依存しない
- レンダリングデータのメモリ配置、型を考慮する必要がない
- レンダリングステートの変化の影響が自明
な事が必要だと思う。

OpenGLを使ってちょっと複雑なものを表示しようとするとこの変がネックになる。
あまりにプリミティブ過ぎないだろうか。



21:デフォルトの名無しさん
10/11/26 21:37:32
>>15
PFD_DRAW_TO_BITMAPを指定してGLSLを使ったらどうなる?
シェーダー処理も全てソフトウェアレンダリングされるのか?
そうはならないでしょ…多分。
一部の機能がソフトウェア処理される程度じゃないかと。

22:デフォルトの名無しさん
10/11/26 21:56:24
>>20
上二つは分からなくもない。
ただ、それはゲームエンジンあるいはライブラリがする仕事と何が違うのか?

> レンダリングステートの変化の影響が自明

これがちょっと分からんな。
これは、レンダリングステートをAからBに変えた時、
どのように表示が変化するのかがプログラマにとって自明である事を言ってるの?

もしそうなら、それは「高級言語」で解決できそうな類の問題なのか?

23:デフォルトの名無しさん
10/11/26 21:58:28
>>17
Open Inventorとかそうじゃないかな


24:17
10/11/26 22:02:52
こういうこと。「効果と影響範囲が自明」の方がいいな。
mesh0.color = {255,0,0};
mesh1.color = {0,255,0};
カラーだけだとありがたくも何とも無いけど。
ある「ステート」の及ぼす効果、範囲がわかり難い。




25:デフォルトの名無しさん
10/11/26 22:14:46
「ライブラリ」と呼ぶのが良いのか「3Dのための高級言語」と呼ぶのが良いのかは定かではないが。
OpenGLに変わるもっと見通しが良く、人間が使いやすい形の3D記述APIが必要だ思うですよね。
GoogleのO3Dもこの方向だと思う。作ったら世の中に受け入れられないだろうか。




26:デフォルトの名無しさん
10/11/26 22:15:37
>>24
それって、ポリゴンの集合に対してカラー属性を付与して、
そのカラー属性の値を関数で与えてるんだよな。

やっぱりライブラリで事足りるような気がするんだが・・・
ていうか、そういうの普通に自作してないか?

わざわざ新言語作るんだから、既存の言語+ライブラリでは不可能、
あるいは意味を明確に表しにくい表現が簡単にできないと意味が無いと思うぞ。

27:17
10/11/26 22:30:32
現状GPUと通信する部分は必ずOpenGLになるので、
OpenGL+ライブラリではできない事ができるかと言われるとできない。
使いやすいだけでも訴求ポイントにはなると思うけど弱いかなあ
うーーん、もう少し革新性が必要ですね……



28:デフォルトの名無しさん
10/11/26 22:36:30
>>27
いや、OpenGL+ライブラリと同じ事しかできなくても、
その言語だと「こんなに楽に、見やすく書けて、メンテ修正もしやすいよ」
でもいいと思うんだ。

ただ、言語を設計するというのは、
ライブラリを作ること以上に骨の折れる作業だよ。

既に既存のライブラリがあるんだから、少なくともそれ以上の
「こんなに楽に、見やすく書けて、メンテ修正もしやすいよ」でないと、
言語を作るメリットがね・・・

29:デフォルトの名無しさん
10/11/26 22:37:55
>>28
しまった、頭痛が痛い

30:デフォルトの名無しさん
10/11/26 23:06:17
俺は何かをやるとその根幹がどんどん気になってしまう人間だからOpenGLくらいのほうが気がラク。
色々と隠蔽したものはゲームエンジンの類になるんじゃないか?OpenGL公式のトップニュース見てるだけでもよく見かけるが。

31:デフォルトの名無しさん
10/11/27 00:09:21
>>17
確かにOpenGLを直接使って3Dを描画するのは大変かもしれない。
世界にはそんな風に考えている人が沢山いて,
OpenSceneGraphとかIrrlichtのようなライブラリが作られたんだよ。
17はOpenGLの欠点だけを挙げているようだけど
そういったライブラリを調べた上でOpenGL+ライブラリ方式が不味いと言ってるの?

ライブラリとかゲームエンジンを使うと開発は楽になるけど
制限も発生するんだよ。

ライブラリに実装されていない特殊な技術を使おうとしたり
ハードウェアの性能を最高に引き出そうとしたりするとOpenGLのような
ハードウェアに近いAPIが必要になるんだよ。

メガデモ野郎の俺様はいつもOpenGL3.3のAPIを直接呼び出して使ってるぜ!(キリッ)

32:デフォルトの名無しさん
10/11/27 04:20:38
17がレベルが低すぎて笑えるw

OpenGLが高級言語だろ
グラフィックでアセンブラ相当と言えばフルスクラッチで、
頂点情報をラスタライズしてポリゴン描画や、画像のピクセル拾ってテクスチャマッピング
ってレンダラを自前で作るくらいの部分だろ

17の理屈で言えば、人間がプログラミングなんてやるのが間違ってて
口で処理を言えば即プログラムが出来上がる高級な仕組みが欲しいってレベルだろ

33:デフォルトの名無しさん
10/11/27 11:01:51
>>32
無理やり難癖つけなくてもw
OpenGL = アセンブリ という例えはあってると思う。
どちらもハードウェアの機能をフルに使いたいときには使うが
それだけでゲームを作るのは狂気の沙汰。

問題はダイクストラの構造化プログラミングに相当するような
3D APIにおけるパラダイムシフトは何か? という点にあると思う。

上の例で言えば
- 命令が記述順に依存しない
- データがメモリ配置、型に依存しない
というのは十分にパラダイムシフトになってると思う。
ゲームエンジンみたいに余計な機能は付け加えずに描画に絞った
ライブラリ(高級言語)はアリだと思う。




34:デフォルトの名無しさん
10/11/27 13:31:00
だから、どっちがOpenGLのレベルまで降りてくるかの問題

OpenGLを叩いてゲームを作るのは狂気の沙汰と思ってる奴が、
ゲームを作りたいと思う事自体が”狂気の沙汰”だろ
って言ってんの

OpenGLは、OpnnGLを叩けるレベルの人間に向けて出されてるんのに
勝手に自分の低レベル目線に持ってきて狂気とかw

そう言うレベルの人間は、ツクールとか
金出して他人にゲーム作成を依頼しろって事

35:デフォルトの名無しさん
10/11/27 14:15:11
>>33
で、どういうのが欲しいか >>19>>22 で具体例を訊いたが、答えが >>24 だ。
これだけ漠然とした答えだと、既存のライブラリと何が違うの?と言わざるを得ない。

しかも >>24 の例は mesh0 や mesh1 と言っていることからして、
どうもポリゴンの集合としてのオブジェクトの概念をも言語レベルに入れたがっている。
しかし、ライブラリではなく言語がそこまで高次の領域の面倒を見るべきかな?
そこまで行くと、逆にかゆいところに手が届きにくくなるような気がする。

命令が記述順に依存しないというのは、
要するに命令的ではなく宣言的に記述できるといいな、ということだろう。
Haskell などの関数型で OpenGL のラッパーを作ればいいのでは?

36:デフォルトの名無しさん
10/11/27 19:29:52
>- 命令が記述順に依存しない

Zバッファの仕組み等の
3Dプログラミングの知識もスキルも無いだけだろw

37:デフォルトの名無しさん
10/11/27 20:47:34
>>36
いや、さすがにそんな基礎は分かってるだろ
でなければ OpenGL は使えない

ある程度ヒントを与えればコンパイラが適切な順に命令を並べてくれる
という意味だと思うぞ


38:デフォルトの名無しさん
10/11/27 22:19:52
本人じゃ無いなら否定出来ないなw

OpenGL程度のAPIを使ってゲーム作るを狂気の沙汰と言ってるんだから
OpenGL分かりませんって言ってるのも同然なレベルだろ
だって基礎知ってれば、OpenGLでゲーム作るのは普通

そもそも言っちゃえばプログラミングの知識すら怪しい

命令が記述順に依存しない
なんて、基礎を知ってるなら素人でも最初に自分で組む部分
APIのステートとかを登録していき、実際に実行するときに解決される
なんて誰でも思いつくし、自分用に作る部分だろ

命令がAPI発行順に依存しない
なら話は違うと思うがw

これだけで、どんだけ低れべるなのか知れる


39:デフォルトの名無しさん
10/11/27 23:30:43
>>36-38
自分が理解できないからといって他人を否定するのはよくない。
glTranslate (0,0,1);
glRotate (90, 0,0,1);

glRotate (90, 0,0,1);
glTranslate (0,0,1);
が等化で有るべきと、俺は解釈したね。


40:デフォルトの名無しさん
10/11/27 23:40:40
ついでに言うと>>36-38 はアセンブリ使いがCなどの高級言語が登場した時に言っていた攻撃文句と同じな。
現実は誰でも知っているようにその後はアセンブリはCに取って代わられたわけだ。
現状のOpenGLが良いとは俺は思ってないし多分みんなもそうだろう。
じゃあ代わりの3D APIがどうあるべきかというと、俺にもアイデアはない。
この辺は恐らく目線の違いで、現在使えればいいだけの>>36-38みたいな人間は
新しいAPIについて考えることはないし、自分で何かしようとは思わないだろう。
恐らく新しい事をやりたい人間は>>36-38みたいな他人を否定したくてしょうがない人間と付き合ってはいけなし、
アイディアを話すのは害にしかならない。






41:デフォルトの名無しさん
10/11/28 00:01:11
>>39
てめぇ、バカに俺(>>22 >>26 >>28 >>35 >>37)も含めるな。

俺は現在使えればいいだけなんて一言も言ってないし思ってもない。

ただ単に「>>17 の言うような新言語」であるなら、
それは既存のライブラリとどこが違うのかと訊いている。
ここが違うと言えないのなら、新言語を設計するメリットが少ないと思うぞ。
これはお前の目には否定に見えるのか?

そして、>>35 でもちょっと言ったが、新言語を設計する時は、
言語が担うべき仕事と、ライブラリに任せるべき仕事をちゃんと区別した方がいい。
まずは、本当に言語が担うべき仕事をちゃんとリストアップすべきだ。

あと、命令が記述順に依存しないの意味が宣言的に記述する事であるなら、
ネタではなく本当に真面目に、Haskell で書かれた OpenGL ラッパー
例えば FieldTrip なんかからアイデアを集めた方がいいと思う。

42:デフォルトの名無しさん
10/11/28 00:03:47
>>40
その話しぶりだと、>>39 はギャグではなくマジなんだな

43:デフォルトの名無しさん
10/11/28 00:39:20
OpenGLは低レベル過ぎて使いづらいからもっと高級にすべき(新しい言語を作る?)派
vs
OpenGLは十分使い安いので現状でOK派
の論争になっているようだね。

今のOpenGLのAPIが完璧だとは言わないけど
OpenGL並にハードに近いAPIは必要なんだよ。
下手に高級にすると制限が生まれて、できるハズの事ができなくなっちゃうんだよ。

OpenGLが使いづらい、3D APIがこうあるべきだ!
と世界中には同じような事を考えてる人は沢山いる。
そういう人たちが3D APIを使いやすくする為にOpenSceneGraphとかのライブラリを作ってるわけだ。

自分と同じような事を他の人が既に考えていて、それなりに結果がでているなんて事はよくあること。
OpenGLが使いづらいよ派の人は
まずは既存のライブラリやゲームエンジンとかをよく調べて、それでも満足しないなら
既存のライブラリの問題点とか、こんな問題はライブラリでは解決できないとか
○○という理由でOpenGL上には俺の理想する3D APIを構築する事は不可能だと言ってくれ。

>>39
class mesh
{
vec3 position;
matrix direction;
...
};
みたいなクラスがあって、そこに位置と向きを指定しておくだけで
その通りレンダリングするライブラリがあればそれでいいんじゃないの?

OpenGLが難しいからといって、今よりずっと理解し易さ重視で速度を犠牲にするような変更を加える事はあってはならないと思う。
OpenGLが難しいなら使いやすいライブラリを探して, それでも解決しないなら文句を言ってくれ。

44:デフォルトの名無しさん
10/11/28 00:49:56
でもJavaなんてどこまでが言語仕様で、どこまでがライブラリなのか非常に曖昧だよね。
ライブラリで全てが解決する派の欠点は、そう都合良く自分の欲しいライブラリがあるとは
限らないところだと思う。新規のものは学習コストもそれなりにかかるし。
個人的にはスキニングとアニメーションは3D API(言語)として標準化した方がいいと思うけどね。
誰かやって。



45:デフォルトの名無しさん
10/11/28 00:58:45
>>40
>恐らく新しい事をやりたい人間は>>36-38みたいな他人を否定したくてしょうがない人間と付き合ってはいけなし、
>アイディアを話すのは害にしかならない。

既存の環境に適応している人間ほど別の環境に移るコストは相対的に大きくなるわけで、
パラダイムを変えるようなアイディアをその環境に適応した人間ばかりの場所に
投げ込んでもいろいろ批判されるのは仕方ないことじゃないかな。

46:デフォルトの名無しさん
10/11/28 01:08:34
お前コテ外すなよ

47:デフォルトの名無しさん
10/11/28 01:09:46
>>39へのレスね

48:デフォルトの名無しさん
10/11/28 01:21:36
>>44
> でもJavaなんてどこまでが言語仕様で、どこまでがライブラリなのか非常に曖昧だよね。

言語仕様ははっきりと定められているはずだが。
URLリンク(java.sun.com)
例えば仕様のどこと、ライブラリの何の境界が曖昧?

> ライブラリで全てが解決する派の欠点は、そう都合良く自分の欲しいライブラリがあるとは
> 限らないところだと思う。新規のものは学習コストもそれなりにかかるし。

求めるライブラリが無ければ自作するという選択肢もあるんだが。
新言語を設計するよりは、学習も含めて低コストではないのか?

> 個人的にはスキニングとアニメーションは3D API(言語)として標準化した方がいいと思うけどね。

だからさ、現状「標準化」されていないことで何が不満なのか一つ二つでも例を挙げてくれ。
でないと、じゃあどうやって解決しようかという話に繋がらないだろ。
まさかその例の列挙も含めて全て「誰かやって」なのか。

49:デフォルトの名無しさん
10/11/28 01:23:36
>>44
ライブラリだと都合良く自分の欲しいライブラリがあるとは限らないというなら
言語にすれば都合良く自分の欲しい物が手に入るの?その理由は?
それをさらに他人にまかせて、自分の思った通りに作ってくれるの?

>>45
いままで出たアイデアの中でOpenGLの代わりに3D API言語を作ろう
というアイデア以外で
目新しいアイデアは無いよ。

パラダイムを変えるようなアイディアってこれの事?
> - レンダリングコマンドが呼び出し順に依存しない
シーングラフ系のライブラリでOK

> - レンダリングデータのメモリ配置、型を考慮する必要がない
レンダリングデータを頂点毎, ピクセル毎に呼び出して設定すればOK
主要な型を自動的に変換してOpenGLへ送ってくれるテンプレート関数を作ればOK

> - レンダリングステートの変化の影響が自明
ちゃんとレンダリングパイプラインを理解していればレンダリングステートの変化の影響は自明だよ。
レンダリングパイプラインが難し過ぎて理解できないなら、理解可能なライブラリを探して使う。

で, 新しい言語を作るメリットは?
ライブラリを作る事に比べてどのようなメリットがあるの?

50:デフォルトの名無しさん
10/11/28 02:19:03
いや、分かってる事は
プログラム以前に数学すらおぼつかない奴が吠えてるって事だろ

お前ら人が悪いな…
黙ってニヤニヤしながらROM気取ってるのかw

51:デフォルトの名無しさん
10/11/28 02:27:35
ものには対象、定義ってのがあるんだよ

OpenGLは低レベルのグラフィックAPIって前提で世に出されてるの
プログラマ向けなの

低レベルでプログラミング出来ないからって、
プログラムも怪しいゲーム作りたい房が文句言ってるなよ
って話

そもそもプログラム(英語とかスキル全般だな)が怪しいからこそ
OpenSceneGraphで間に合ってるような内容を、低レベルAPIに求めだすんだろw

52:デフォルトの名無しさん
10/11/28 02:33:07
車の運転が出来ないくせに、
車の構造に文句言ってF1レーサーになりたいって言ってるようなモン

53:デフォルトの名無しさん
10/11/28 09:19:01
>>49
>パラダイムを変えるようなアイディアってこれの事?

それは>40のアセンブラ~Cへの行を受けたものだけど、
API呼び出しが言語になるのなら十分同じ程度の変化だと思う。
ポインタに躓いたことがなくてしかもそれを便利に使ってるような人に、
ポインタのない言語作ろうぜ、とか言っても説得は不可能だと
思うから個別のことには答えられないけど。

54:デフォルトの名無しさん
10/11/28 10:16:30
OpenGLは低レベルAPIだな。それに比べるとDirectXはかなり高レベル。
OpenGLもせめてDirectX並みに拡張子した方がいい。


55:デフォルトの名無しさん
10/11/28 10:24:38
出来ない奴って必死だな

ポインタが無い言語が出来た理由は
ポインタが理解出来ない人の為ではなくて
ポインタと言うメモリアドレスを直接さわると
バグやセキュリティ低下の原因になるから

アセンブラ~Cの下りも比較になってない
お前らが求めるのは、
C言語でプログラム組むのは狂気の沙汰、BVじゃないとって位の話

ようは、OpenGLやC言語の問題を指摘してるんじゃなくて
俺達分からないから簡単にしてって言ってるんだろ

56:デフォルトの名無しさん
10/11/28 10:47:28
例えば、アセンブラには for文 に相当するものはない
でも for文 に相当する処理は頻繁に行う
これならアセンブラ->C言語の移行も納得の機能だろう

だが、今OpenGLに変わる高級3D言語?を求めてる奴等って
OpenGLで出来る規定処理を簡単に、とかって話のレベルじゃないんだよな

OpenGLが使っている、3Dの基本的な原理、手法や現在のHWの仕様などなど
を問題視してるように見える

それは、C言語でプログラミングしてコンパイラでバイナリを作るって言う
C言語の大本を問題視してるようなもの

それはC言語を辞めて下さいって話で、C言語をどうこうって話ではないだろ
つまりOpenGLをどうこうではなくて、OpenGLとはまったく違う3D APIって事だろ

現在のGUPアーキテクチャがどうなってるとか、それをAPIでどう吸収するのか
ってそう言う話なら歓迎だが、単にOpenGL難しいよね的な理由のレスはかんべんしてくれw

57:デフォルトの名無しさん
10/11/28 10:56:57
>>56 それはちょっとおかしい。
3D APIに誰もfor文やその他の制御構文を求めているわけではないと思う。
最初に問題にされていたのは命令の記述順だったり、グローバルなレンダリングステートだったはず。
確かにOpenGLはその辺の仕様が良くないので、OpenGLに変わる何かはアリだと思う。
勝手に誰かが簡単ライブラリを探している事に矮小化するレスを除外して考えないと本質を見失う。



58:デフォルトの名無しさん
10/11/28 11:27:21
命令の記述順
グローバルなレンダリングステート

なおさらw
どれもOpenGLを叩く言語上の問題であってOpenGLの問題じゃない
さもOpenGLの問題のようにすりかえてるだけで、プログラミング能力がないだけ

for文の構文仕様に文句言ってるのも同然
最初に初期化、条件、変化は分かり辛いとかw

そもそも、そう言うOpenGLの仕様になってるのは
GPUのアーキテクチャや仕様から来てるんだよ
その仕様に最低限のシンプルな実装になるようなAPI仕様になってるの
それが気に入らないなら、自分でライブラリ作るなりしろ

命令の記述順
グローバルなレンダリングステート

これらは十分すぎるほど個人の言語処理のレベルw

59:デフォルトの名無しさん
10/11/28 11:35:15
命令の記述順

モロに”記述”ってプログラミング言語の問題だって自身で言ってるだろw
どう記述しようが、実際の実行(APIコール)は整合がとれている
そう組めば言いだけだろ、なんでGLの問題に摩り替えようとしてるんだw

グローバルなレンダリングステート

APIを使えるようになってから文句言おうな
ステートのPOPとPUSHはあるぞw
(糞重いけど)

60:デフォルトの名無しさん
10/11/28 11:44:45
最初に問題ってコレだろ

- レンダリングコマンドが呼び出し順に依存しない

これは59でも言ってるが、直接API呼び出してる
プログラミング能力の無さを棚にあげてる

- レンダリングデータのメモリ配置、型を考慮する必要がない

これも同じ
配置、型を考慮しないインターフェイスを自作して
そのインターフェイスの中で振り分ければ言いだけ
人はそれをライブラリと呼ぶw

- レンダリングステートの変化の影響が自明

これも同じ、各ステート値を保存しておいて…って
GLにステートをゲットするAPIがあるだろwww

メッシュがろうがポリゴンだろうがゲームループの先頭から、
直接API呼んじゃって制御してるようなレベルの素人さんの
個人的レベルの意見に過ぎないだろ、どう見ても

61:デフォルトの名無しさん
10/11/28 11:49:39
>レンダリングステートの変化の影響が自明

今現在、明白だからOpenGLでレンダリング制御できると思うんだが・・・

やっぱり、どう見てもOpenGLを使いこなせてないだけのような・・・

62:デフォルトの名無しさん
10/11/28 11:54:33
新言語欲しい派は、「今のOpenGLの何が問題」で、
新言語で「どうやって記述するとそれが解決すると思うか」例を挙げてくれ
その記述をどうコンパイルするかは脇に置いていいから

とりあえず >>24 の書き方で「効果と影響範囲が自明でない問題」が解決するのなら、
新言語を作るまでもないと俺は思う。

ライブラリを探すどころか、OpenGL でゲームやアプリを作ろうと挑戦してきた人間なら、
たいていは自作しているレベル。

63:デフォルトの名無しさん
10/11/28 11:59:56
「今のOpenGLの何が問題」

・俺に使いこなせない

これ一択だろ

64:デフォルトの名無しさん
10/11/28 12:12:01
とりあえず日本人は全力で他人の足を引っ張ることだけは分かった。

65:デフォルトの名無しさん
10/11/28 12:18:50
OpenGLは
プログラムが出来て、3D等の理論、GPUアーキテクチャを理解している人向けのAPI
それ以外の人は御遠慮下さいってだけだろ

出来ない君が欲しがるのは自由だが
欲しがって勝手に使った挙句、使いこなせない状況を
OpenGLの問題とか言い出すのは違う

そんなのが通じるなら、
世の中のプログラム出来ない人間が
全てのプログラム言語は問題がるとか言い出して
プログラミングしなくとも好きなバイナリを作れるようにすべき
って理屈が通じる事になる

66:デフォルトの名無しさん
10/11/28 12:22:44
言ってる理屈や理論が否定され、
それを万人が認めるくらい覆す内容を言えてないのに、足を引っ張るって…

ほんと最近は、自己中心的なガキか増えたよなw

67:デフォルトの名無しさん
10/11/28 13:15:58
>>65
だから万人向けのAPI(高級言語)を作ろうという話だったはず。
OpenGLはそのままで、もう1つ別のAPIを定義しようぜって話。

68:デフォルトの名無しさん
10/11/28 13:27:17
>>67
万人向けのAPIを作る「動機」が不明確

もう少し言うなら、ライブラリで解決しようとしないで、
より困難を伴う新言語の設計で解決しようとする理由が不明確


69:デフォルトの名無しさん
10/11/28 17:57:10
>>67
そうなら、この"OpenGL"スレから出て行ってくれよw

70:デフォルトの名無しさん
10/11/28 20:19:21
マサカと思うが
>>17の言いたいことはこうか
「馬鹿の17にもわかるライブラリよこせやごるぁ」


71:デフォルトの名無しさん
10/11/28 21:21:02
今年のSIGGRAPHで「馬鹿の17に分かるようなライブラリねーから!」と発表があったのが堪えたんだよ彼は。

72:デフォルトの名無しさん
10/11/28 21:35:55
API(高級言語)って時点でもう

73:デフォルトの名無しさん
10/11/29 13:52:17
DirectXやOpenGLはマシン語に相当するからな。
一つの言語でグラフィック界のマシン語にコンパイルできたらかなり便利だろ。
あとGUIもその言語によって環境によって一つにまとめれたらますます便利になるな。

74:デフォルトの名無しさん
10/11/29 14:00:07
言語というより共通のインターフェイスだな。
C++標準ライブラリーに組み込んでほしいな。

75:デフォルトの名無しさん
10/11/29 19:11:52
>>73
一つの言語でグラフィック界のマシン語にコンパイルというのは、
グラフィックに関係ない部分(AIロジックなど)も全部その新言語でプログラムするの?

それとも、グラフィック以外はA言語、グラフィックはB言語とかって分けるの?

76:デフォルトの名無しさん
10/11/29 19:23:09
どちらも違うOpenGlは言語ではなくてライブラリーだから
Cなどの言語に相当するものもライブラリーになる

77:デフォルトの名無しさん
10/11/29 19:52:35
>17
間違えてない。
アセンブラでプログラムを組むことも間違いではない。

お前は何か大きな勘違いしている。


78:デフォルトの名無しさん
10/11/29 20:31:03
>>76
言ってる意味が分からんな

もしかして「一つの言語でグラフィック界の・・・」の「言語」というのは比喩なのか

79:デフォルトの名無しさん
10/11/30 12:48:24
面倒だから
解決策述べずにGL批判する奴は
・OpenGLが使えない
・自分では何もできない
・プログラミング・数学ができない
・日本語が分からない
としてこのスレを出て行ってもらおう
みんなシカトな


80:デフォルトの名無しさん
10/11/30 14:27:24
>>79
とりあえずレス全部読んでから書き込んでいただけます?
お前は一体誰と戦ってるんだ

81:デフォルトの名無しさん
10/12/05 12:33:43
glfwってコンテキストスイッチはサポートしてないんだな
それって何の意味もなくね

82:デフォルトの名無しさん
10/12/06 10:16:21
>>81
コンテキストスイッチってマルチウィンドウという意味かな?
だったら次の3.0で対応

83:デフォルトの名無しさん
10/12/06 16:55:03
コンテキストといえば、glewContextInitもかな
海外のサイト見てもリンカエラー、実装されてねえぞとの報告ばっかり

84:デフォルトの名無しさん
10/12/07 10:24:34
glewやglfwで現サポートしているマルチスレッドは
レンダリングコンテキストの扱いを度外視してるから
どの道APIを直接叩かないとダメだよ
ライブラリに依存したソースに後からマルチスレッドを実装するとなれば、おそらくソース全修正レベル

まあそれが”ライブラリ”の常なんだけどね
バージョンアップの度に指向を二転三転させ、開発者の脳と体を爆発させかねないブレを見せてるのはこれくらい
上にも挙がってるけど、GLが嫌われてるのはそういうところかな
なまじ汎用性が高いからタチが悪い

85:デフォルトの名無しさん
10/12/09 15:13:11
初心者の質問ですいません
頂点バッファ+固定機能(OpenGL1.5くらい)で、モデルの透明度を毎フレームを変化させたいのですが
こういう時は頂点カラーを変更して頂点バッファを送り直すものなんでしょうか?
頂点カラーはそのままで、もうひとつ任意のアルファ値を乗算させる方法はありますか?
つまり glBlendFunc(GL_SRC_ALPHA * GL_CONST_ALPHA, ...); みたいなことはできます?

86:デフォルトの名無しさん
10/12/09 15:31:41
それ俺も知りたい。頂点カラーってα値だけでいいから
あとから一括して乗算できると便利なんだけど。


87:デフォルトの名無しさん
10/12/09 17:56:01
半透明なテクスチャを貼って乗算する

88:デフォルトの名無しさん
10/12/09 20:01:32
テクスチャ・・・1x1のテクスチャをアルファ制御用に貼っておいて
透明度が変わるたびにそのテクスチャだけ転送しなおせば
転送量が小さくなるってことでしょうか?
でも元々テクスチャを貼ってある場合はどうするです?
あ、テクスチャコンバイナ関数・・・とかいうのを使う?

89:デフォルトの名無しさん
10/12/09 21:52:30
glTexEnvでテクスチャの合成方法を設定できる
しかし標準でGL_MODULATEだから特にいじる必要なさそうだな
GL_TEXTURE1にアルファだけの1x1テクスチャをバインドして有効にするだけ

GL_COMBINE使えば1x1テクスチャ用意する必要もなく定数設定してかけることもできそうだが試したことはない

90:デフォルトの名無しさん
10/12/10 00:02:44
頂点カラーをテクスチャに焼き付けて頂点カラーやめるのはだめなの?

91:デフォルトの名無しさん
10/12/10 16:40:32
>>90
その発想はなかったですが、頂点カラー配列を自由に使えるようになったとしても
頂点バッファを毎フレーム送り直すのは変わらなくないですか?
glDisableClientState(GL_COLOR_ARRAY) したら単にデフォルトの白になりますよね?
(・・・あれ?デフォルト色って指定できるんでしょうか?)

>>89のGL_COMBINEでテクスチャ用意しなくても定数乗算っていうのが一番イメージに近いですが
特殊っぽいので、もしうまくいっても結局グラボによって動かないとかありそうですね・・・

難しそうなのは分かりました。シェーダが使えない場合は素直に頂点バッファ送りなおしの方向で考えます
ありがとうございました

92:デフォルトの名無しさん
10/12/10 16:45:08
あ、違った。1x1テクスチャの方法はいずれにしろ有効でした
汎用的に実装できるかな・・・ありがとうございました

93:デフォルトの名無しさん
10/12/10 17:22:30
結局うまい方法は無いってこと?


94:デフォルトの名無しさん
10/12/10 17:23:38
つまり頂点カラーを毎フレーム送るのがスタンダードなやり方。
(BVOの意味ないじゃん)

95:デフォルトの名無しさん
10/12/10 19:17:10
頂点バッファで頂点カラー使わないならglColor*だけでできなかったっけ

96:デフォルトの名無しさん
10/12/10 19:35:21
スレ的には身も蓋もないけど、ピクセルシェーダで書いた方が捗りそうだね

97:デフォルトの名無しさん
10/12/10 23:47:25
ピクセルシェーダより頂点シェーダで頂点カラーのアルファだけいじるのが効率いいけどな
しかし元が固定機能でって話なので

98:デフォルトの名無しさん
10/12/15 00:23:52
GLSL勉強中なのですが、教えてください。
Shader中で、forループを使うと、非常に遅くなるんですが、繰り返し処理をべた書き(9周程度の処理なので、9行のコードを記載)したところ、サクサクうごきました。そういうもんなんでしょうか?
ちなみに、実行環境はiPhone4です。


99:デフォルトの名無しさん
10/12/15 11:41:35
かつては高コストな処理が潜んでたんだよ。

100:デフォルトの名無しさん
10/12/15 12:08:54
現在の話をしているときに過去の話をしても意味が無いだろ。
典型的な会話ができない人だな。


101:デフォルトの名無しさん
10/12/15 12:15:25
何 急に出てきて意味不明なこというやつ。

102:デフォルトの名無しさん
10/12/15 18:17:21
頂点を決める場合は、renderに打ち込むしかないんですか?
テキストや別ファイルから読み込む方法ってありませんか?

103:デフォルトの名無しさん
10/12/15 21:55:54
>>98
GLSLコンパイラによってはループの展開など最適化を自動でしてくれるがiPhoneではそんなものかも

>>102
renderに打ち込むの意味がわからないんだが、
テキストや別ファイルから読み込むコードは自分で書くか
読み込み用のライブラリを使ってくれ

104:デフォルトの名無しさん
10/12/18 16:00:19
OpenGL画面内でウィンドウとかダイアログを表示して取り扱える
オープンソースなライブラリご存知ないでしょうか?

105:デフォルトの名無しさん
10/12/18 16:28:22
GLUI?

106:デフォルトの名無しさん
10/12/18 20:59:48
本格的なものならQt。覚えるの大変かもだが
URLリンク(www.youtube.com)

107:デフォルトの名無しさん
10/12/18 21:09:54
笑った。すげーな
Qtの中でOpenGL使うのは普通だけど逆は初めて見た。

108:デフォルトの名無しさん
10/12/18 23:04:30
面ごとにテクスチャ画像を変えたい場合どうすんの。


109:デフォルトの名無しさん
10/12/18 23:15:18
面ごとにバインド

110:デフォルトの名無しさん
10/12/18 23:46:53
自己解決した。
UVマッピングだな。

111:デフォルトの名無しさん
10/12/18 23:56:00
いや解決してないだろそれ
テクスチャー画像変えたかったらバインドし直すしかあるまいて

112:デフォルトの名無しさん
10/12/19 00:09:36
画像変えたいって言い方はおかしいわな

113:デフォルトの名無しさん
10/12/19 00:14:10
画像変えるしかないと思ってたんだよ

114:104
10/12/20 10:17:26
>>105

GLUT系はオープンソースではないので、少し躊躇してしまいました。
#今後趣味として、ライフワーク的に改良するアプリを作りたいなぁと...

>>106

Qtは仕事で触っているのですが、このような使い方ができるとは思いませんでした。
(>>107さんと同じ考えでした)
少し研究してみたいと思います。

ありがとうございました。

115:デフォルトの名無しさん
10/12/20 10:26:50
初心者質問で申し訳ないんですが、OpenGLを使ったゲームを作りたく、1から勉強したいと思っています
OpenGL4.0がリリースされたそうですが、>>1の必読書やっとけば鉄板でしょうか?
また、サウンド関連などは何を使えばいいのでしょうか?

116:デフォルトの名無しさん
10/12/20 10:34:01
正直4.0の内容までわかるってなったら相当時間かかるし、まだまだ全然情報ないから>>1だけじゃ無理。とりあえずはシェーダー使えるようになることを目指すべき。

サウンドはOpenALとかかな。

117:デフォルトの名無しさん
10/12/20 10:39:59
>>116
OpenALですか。ありがとうございます!
DirectXが10・11から大幅に仕様が変わったという話なのですが、
OpenGL4.0は以前のバージョンからの拡張という感じなのですか?
それとも、まだそういった情報はあまり来ていないのでしょうか。

118:デフォルトの名無しさん
10/12/20 11:17:49
DirectXは10でだいぶ変化して過去の機能切り捨て。11でテッセレーションとDirectCompute機能の追加。
それにそれぞれ対応するのがOpenGL3.xとOpenGL4.0。ちなみに最新版はOpenGL4.1。

でもOpenGLは互換プロファイルってのを使えば過去の機能も一応使える。

これらの習得は君が思ってる以上に長い道だと思うけど頑張って。

119:デフォルトの名無しさん
10/12/20 11:43:38
>>118
おお・・・。DirectXと同じような形になってるのかぁ・・・。
どっちをやっても労力は一緒っぽいですね・・・。
とりあえずOpenGL3.xあたりから勉強してみます。

120:デフォルトの名無しさん
10/12/20 11:54:39
OpenGL3.0以降からの学習について書いてあるサイトは皆無だから、まずは固定パイプラインである古典OpenGLから勉強するのが良いよ。慣れてきたらプログラマブルシェーダーに手をつける。

121:デフォルトの名無しさん
10/12/20 19:54:11
CUTT System:OpenGL 4.0 グラフィックスシステム
URLリンク(www.cutt.co.jp)

なんか新しい本でてるね

122:デフォルトの名無しさん
10/12/20 19:55:14
>>121
よくみたら、仕様書の翻訳か・・・
それにしても高いな

123:デフォルトの名無しさん
10/12/20 20:00:02
OpenGLの新刊を久しぶりに見た気がするw
アホな本出されるより仕様書を訳してくれた方がありがたい。


124:デフォルトの名無しさん
10/12/20 20:39:58
仕様書系はただの翻訳でも責任が重いからな
かなりの分量ある物全体に渡ってチェックの質を高く保つために、
価格も高いんだろ

そうだと信じたい

125:デフォルトの名無しさん
10/12/20 20:43:07
仕様書はパイプラインの順を追って書かれてるから調べ物するにはちょっと使いづらいよな
あらためて読むと知らないことが意外にあったりするんだが

OpenGL SuperBibleあたりが訳されたら便利そうだけど厚いから翻訳は望めないか

126:デフォルトの名無しさん
10/12/21 12:14:23
最近(?)のnvidiaのOpenGLドライバーにGL/glu.hがなく、
gluBuild2DMipmaps がエラーになります。
これはもうglu.hは使うなということでしょうか?
助けて。

127:デフォルトの名無しさん
10/12/21 12:21:10
libglu1-mesa-dev パッケージを入れたらgluが使えるようになりました。
何でやねん。
このパッケージを入れるとOpenGLがnvidiaからmesaに変わりそうで入れなかったのですが、
特にそういうこともないようです


128:デフォルトの名無しさん
10/12/21 23:47:27
俺の英語力が低いだけかもしれんが、OpenGLの仕様書の英語って難しくない?
書いてある事がよくわからないときはExtension Restoryとかどっかのサイトを調べたりするけど。

129:デフォルトの名無しさん
10/12/21 23:56:33
俺の日本語力が低いだけかもしれんが、仕様書の日本語って難しくない?
書いてある事がよくわからないときは転職サイトを調べたりするけど。

130:デフォルトの名無しさん
10/12/22 01:02:08
うわ、つまんね

131:デフォルトの名無しさん
10/12/22 06:42:40
スレチならすみません;w;
OpenGLのオンラインゲームをSCFH DSFを使ってフルスクリーンでニコ生とか配信したいのですが
Windows7だとフレームバッファの違いなのか真っ暗にしか映りません。
XPだとちゃんと配信できるみたいですが・・・
DxtoryというソフトもありますがあまりにもSCFHの仕様が好きすぎてソフトを変えずに配信したいです。
その場合SCFHのプログラムをどのように扱えばいいのか、またコマンド?次第ではWindows7でも
配信できるのか知りたいです。
プログラムとかはまったくの初心者です。
知恵をお借りしたいです。

132:デフォルトの名無しさん
10/12/22 06:51:54
>>131
PCゲームのプレイ動画をキャプチャする方法
スレリンク(pc板)

検索したらこんなスレがあったよ
そこできけばいいよ

133:デフォルトの名無しさん
10/12/22 06:54:50
>>131
SCFH DSFでググレば色々でてくるわけだが・・・

134:デフォルトの名無しさん
10/12/22 07:39:34
>>132
ちょっと覗いてきます!

>>133
色々ぐぐって探しましたがSCFHを使ってWindows7でフルスクリーン配信は無理という結果しか
出てこず頭をかかえておりました。
これはもうSCFHを改良するしかないと思いここに書き込ませていただきました。
スレチっぽかったですね・・すみません;w;

ありがとうございました!

135:デフォルトの名無しさん
10/12/22 09:29:11
Linux(Ubuntu)環境で動画キャプチャーできるソフトない?
どいつもこいつも何故かOpenGL使ってると失敗する。

136:デフォルトの名無しさん
10/12/22 14:11:39
xvidcap でできたよ (Debian sid + 8600 GT + nvidia の 260.19.21)


137:デフォルトの名無しさん
10/12/24 16:27:15
glReadPixelsを使って、連続でデスクトップのキャプチャー画像を取り出しているんだが、
これを高速で拡大/縮小したい。
なんかいい方法ない?

138:デフォルトの名無しさん
10/12/24 19:32:39
WindowsでOpenGL使ってるんですが、テクスチャオブジェクトが勝手に
消える(ように見える)現象に悩まされています。

1. CreateWindow()でウィンドウを生成
2. WM_CREATEが発生した時にテクスチャオブジェクトを作成する。
3. 再描画が発生した際(WM_PAINT発生時)に、2で生成しておいた
テクスチャオブジェクトをglTexCoord2f()、glVertex2fs()で表示する。

という処理で、3でテクスチャの内容が表示されません。
(テクスチャが表示されるべき箇所に、白くベタ塗りされる)

3の処理が発生する度に、glTexParameteri()で拡大縮小フィルタの設定と、
glTexImage2D()で画像の設定をしてやると、正常に描画されます。

GLUTで同様のコードを書くと、正常に描画されるのですが。
何が悪いんでしょうか。


139:デフォルトの名無しさん
10/12/24 19:45:15
openglでアプリを作っているんですが、図を描くための頂点を設定する際にそれをテキストファイルから読み込むことは可能なのでしょうか?
使っているのはMacのXcodeです。



- (void) render
{

static const GLfloat squareVertices[] = {
-0.5f, -0.5f,
0.5f, -0.5f,
-0.5f, 0.5f,
0.5f, 0.5f,
};


↑この『-0.5f, -0.5f,』の部分をテキストファイルから読み込んで表示したいと思っています。


140:デフォルトの名無しさん
10/12/24 19:47:01
>>139
できます。できなったら怖いです。


141:138
10/12/24 20:01:14
よくよく調べてみると、初回のテクスチャ生成時にglGenTextures()が
GL_INVALID_OPERATIONを返しているのが直接の原因のようです。
エラーが出るような変な場所で呼んではいないと思うんだけどなあ...

142:138
10/12/24 20:11:44
glGenTextures()を呼ぶ場所を[3]にして、初回のWM_PAINT発生時にのみ
テクスチャオブジェクトを呼ぶようにすることで、テクスチャオブジェクト
の描画に成功しました。
気持ち悪いですが、解決ということで。

143:デフォルトの名無しさん
10/12/24 20:55:05
Windowsは知らないけどGLコンテキストがまだ有効でないところで
glGenTextures()を呼んでいるのでは?
まれによくある。

144:デフォルトの名無しさん
10/12/24 20:56:42
>138
CreateWindow()がデバイスコンテキストを作成する前じゃないの?

145:144
10/12/24 20:59:52
書き込めた!

>>85


146:144
10/12/24 21:01:16
途中だった orz

>>85

glLightfv で alpha を変更すれば?

147:デフォルトの名無しさん
10/12/24 22:52:37
>>139 に乗っかるわけじゃないですが、
テキストからの読み込みってどのような方法がありますか?


148:デフォルトの名無しさん
10/12/24 23:01:53
fopenまたはifstream

149:デフォルトの名無しさん
10/12/24 23:18:52
>>148 やっぱりXcodeでもfopenでいいんですね!
それってプログラムのどの辺に書き込めばいいんですか?


たびたびすいません

150:デフォルトの名無しさん
10/12/24 23:21:52
失せろカス

151:デフォルトの名無しさん
10/12/24 23:26:38
さーせん

152:デフォルトの名無しさん
10/12/24 23:50:33
>>150 すいません、自力で頑張ってみます

153:デフォルトの名無しさん
10/12/27 01:53:55
スクリーンにテクスチャを描画したいのですが
スクリーン座標をうまく得ることができず、
視点移動するとどうしてもおかしくなってしまいます
glReadPixels
GluUnProject
この2つを使ったのですがZ値が奥にいったりしてしまいます・・・

なんかいい方法はありませんでしょうか?
よろしくお願いします。m(_ _)m

154:デフォルトの名無しさん
10/12/27 09:45:29
(0,0)~(640,480)を指定して2次元っぽく板ポリゴンを描きたいのなら、
投影行列をこう設定して、
 glMatrixMode (GL_PROJECTION);
 glLoadIdentity ();
 glOrtho (0, 640, 0, 480, -1, 1);
例えば画面全体を覆う板ポリゴンを描くには、
 glBegin (GL_TRIANGLE_STRIP);
 glVertex3f (640,0,0);
 glVertex3f (640,480,0);
 glVertex3f (0,0,0);
 glVertex3f (0,480,0);
 glEnd ()
でOK。

155:153
10/12/27 15:01:10
ありがとうございましたm(_ _)m
無事解決できました。

156:デフォルトの名無しさん
10/12/27 15:22:13
ボタン画像の同じtex_idの画像をx.y座標を変えて複数個表示(透過)する処理を書いているのですが、
この関数(drawTexture)を実行する前に行った↓のglColor4fが1つ目のボタン画像にしか摘要されず
、1つ目のボタン画像以外透過処理されずに出力されてしまいます。
gl.glColor4f(0x10000, 0x10000, 0x10000 , 0.5f);

関係ないかもしれませんが、draw処理の前に一度かならず下記の処理を記述しています。
gl.glColor4x(0x10000, 0x10000, 0x10000, 0x10000);

どうかこのボタンすべてに透過処理を行う方法をご教授くださいませんか?

drawTexture関数
// テクスチャユニット0番をアクティブに
    省略
gl.glBindTexture(GL10.GL_TEXTURE_2D, tex_id);
// モデルビュー行列を選択
gl.glMatrixMode(GL10.GL_MODELVIEW);
// 現在選択されている行列(モデルビュー行列)に、単位行列をセット
gl.glLoadIdentity();
// 行列スタックに現在の行列をプッシュ
gl.glPushMatrix();
gl.glTranslatef(x, y, 0);
gl.glRotatef(angle, 0.0f, 0.0f, 1.0f);
gl.glScalef(scale_x, scale_y, 1.0f);
ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4); // square
vbb.order(ByteOrder.nativeOrder());
vertexBuffer = vbb.asIntBuffer();
vertexBuffer.put(vertices);
vertexBuffer.position(0);
gl.glVertexPointer(3, GL10.GL_FIXED, 0, vertexBuffer);
gl.glTexCoordPointer(2, GL10.GL_FIXED, 0, IntBuffer.wrap(texCoords));
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
gl.glPopMatrix();

157:デフォルトの名無しさん
10/12/27 16:48:56
1つ目のボタンを表示してから2つ目のボタンを表示するまでに、誰かがglBlendFunc()を呼んでいる。
そっちも多分理由があって呼んでるはずだからdrawTextureに入ったら改めて自分でglBlendFunc()を呼んでセットし直せばいい。



158:デフォルトの名無しさん
10/12/27 16:52:22
あとこれ間違えな。
×:gl.glColor4f(0x10000, 0x10000, 0x10000 , 0.5f);
○:gl.glColor4f(1, 1, 1, 0.5)
1以上は1にクランプされるから平気だけど。


159:デフォルトの名無しさん
10/12/27 18:19:43
>>157

ボタンラベルを描画するクラス内部でglBlendFuncを行っていました
のでラベル表示のループとボタン描画のループを分けることで無事解決しました。
有難うございました。

>>158
参考書通りの記述ですが、結構前から疑問に思いつつ放置していた部分です。
2つも同時に学べることができました。
13000円の参考書を買おうか、この時点で迷っていましたが助かりました!



160:デフォルトの名無しさん
10/12/28 07:46:05
背景と背景以外を分けたいと思い、depthが1かどうかで分岐するような
コードを書いたのですが、明らかに背景の点が背景以外に入る事があります。
調べてみるとdepthが0.99くらいの微妙な数値になっているようで、
透視投影の設定がまずいのかと見返しましたが原因がわかりません。
原因としては何が考えられますでしょうか?
もしよろしければご教授ください。

161:デフォルトの名無しさん
10/12/28 08:51:24
計算機ではよく有ること。
有限桁の浮動小数であらわしている以上微妙な誤差は出る。


162:デフォルトの名無しさん
10/12/28 11:31:44
>>161
そういうものですか…。
ありがとうございます。他の方法を考えてみます。

163:デフォルトの名無しさん
10/12/28 17:20:06
2枚のテクスチャを画面に並べて表示するプログラムを作成中ですが、
2枚とも並べると画面に入らないため、画像で特に表示させたくない部分は
画像を切り取って表示させようと思っています。

すでにロードしているテクスチャを座標を指定して切り取る方法をご存知の
方、教えて頂けませんでしょうか?

164:デフォルトの名無しさん
10/12/28 17:32:17
何言ってるかわからん。
glTexCoord2f(s,t)で(s,t)を変えれば終わりだろ。


165:デフォルトの名無しさん
10/12/28 17:33:08
頂点のテクスチャ座標を調節するだけではいけないのですか?

166:デフォルトの名無しさん
10/12/28 18:09:48
だからそう言ってるだろ。


167:デフォルトの名無しさん
10/12/30 23:25:37
かなり既出だと思うんですが探しても分からないんで聞きます。
glDrawArraysをした後、レンダリングした実座標を取りたいんですが何を見ればわかるんでしょうか?



168:デフォルトの名無しさん
10/12/30 23:35:05
わかりません
必要ならgluProjectなりなんなりで自分で計算してください

169:デフォルトの名無しさん
10/12/30 23:35:41
実座標ってのは画面での座標ってこと?
それなら描画しようとしてる頂点の座標にプロジェクション×モデルビュー行列かけて、さらにビューポートの座標でどこに相当するかを考えればわかると思うけど。
固定機能でならgluProjectとかがあった気がする。

170:デフォルトの名無しさん
10/12/30 23:40:47
>>168
>>169
自分で計算するしかないんですね、大変そう・・・
レスありがとう!

171:デフォルトの名無しさん
11/01/02 01:10:21
こんにちは。
球とかドーナツ型とかのメッシュを自動生成してくれるライブラリみたいのはないでしょうか?
座標と描画順を吐き出してくれるライブラリがあるとすごくうれしいんですけど。


172:デフォルトの名無しさん
11/01/02 01:30:27
Direct3Dとかw
Cylinder, Sphere, Torusはいけるはず

173:デフォルトの名無しさん
11/01/02 02:08:57
glutWireTorus とか

174:デフォルトの名無しさん
11/01/02 02:35:17
>>172
>>173
球はSphereで、ドーナツはTorusなんですね。Ballとかdoughnutで調べてました。
Direct3DでTeapotって関数を見つけたんですけど、さすがに使い道はなさそうですw
OpenGLの仕事が入ってきたのですが、Direct3Dも含めて3Dは初めてだったので困っていました。
ありがとうございます。早速調べてみます。

175:デフォルトの名無しさん
11/01/03 17:58:58
vrml 2.0のパーサのライブラリのリンクが全然たどれない。。
モーション作るのに他にいいのある?

176:デフォルトの名無しさん
11/01/03 18:07:43
kinect

177:デフォルトの名無しさん
11/01/04 15:24:18
GTX480 で glReadPixels がやたら遅くなってる問題を今頃知ったのですが、
なにか回避策ないでしょうか? Quadro買わなきゃダメかな。
あと、GTX580 でこの問題を試した方いますか?

178:デフォルトの名無しさん
11/01/05 17:31:40
ポイントスプライトにテクスチャ座標って指定できないの?

179:デフォルトの名無しさん
11/01/05 18:31:40
glmultmatrix等のOPenGLでの行列演算をを使うと
自作の行列計算のプログラムを使うよりも速いのですか?

180:デフォルトの名無しさん
11/01/05 18:45:52
Android実機で作成したアプリケーションを動作確認中ですが
OpenGLESで2Dテクスチャを画面サイズに合わせて表示すると白画面に
なってテクスチャが表示されません。(エミュレータだと表示可能)

すべてのテクスチャを2の累乗にしても駄目でした。
画面サイズに合わせてテクスチャのサイズを変更したのがまずかったのでしょうか?

どなたか何故この状態になるのかご教授頂けないでしょうか?

181:デフォルトの名無しさん
11/01/05 18:59:32
>>179
ユーザが計算した行列をglMultMatrixとかglLoadMatrixで読み込ませるのは遅いらしいと聞いたことはある
OpenGLがそこから逆行列を計算しなければならないためらしい
glTranslateとかglRotateとかglScaleとかで操作するときは逆行列の計算もその逆向きの操作をするだけなので速いということらしい
本当かどうか確認したことはないので正しいのかどうかはわからない

182:デフォルトの名無しさん
11/01/05 19:04:07
>>180
あまり役に立たないかもしれないがglGetErrorでどこかエラーが発生してないか確認してみては

183:デフォルトの名無しさん
11/01/05 19:15:17
解決しました。

よく確認するとテクスチャが2の累乗画像(正方形)ではありませんでした。

184:デフォルトの名無しさん
11/01/05 19:56:09
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄

185:デフォルトの名無しさん
11/01/06 16:31:45
2D画面のフェードアウトフェードイン処理を記述しております。
フェードアウト処理は
gl.glColor4f(1, 1, 1 , fdInAlphaNum);のfdInAlphaNumを徐々に
増やしていきながら、黒の画像をフレームバッファに描画する形で
出来ていますが、フェードイン処理については黒の画像のアルファ値
徐々に減らしても、黒い画像から一気に描画させたい画像を表示して
しまいます。

フェードイン処理をうまくやる方法を教えてください。

186:185
11/01/06 17:08:15
フレームレートを調整したら解決しました。



187:デフォルトの名無しさん
11/01/07 00:13:41
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄

188:デフォルトの名無しさん
11/01/08 01:27:51
最新のSandyBridgeの統合GPUは前世代に比べてOpenGLグラフィックス性能が
現行の10倍以上に上がってるみたいだね
URLリンク(pc.watch.impress.co.jp)

189:デフォルトの名無しさん
11/01/08 09:16:44
基本的にはノート用だね。ローエンド単体GPUより上の性能を低消費電力で提供。
それよりIntelがやっとまともなOpenGLを提供するのがうれしい。

190:デフォルトの名無しさん
11/01/08 23:51:00
Arrandale が酷すぎた。

191:デフォルトの名無しさん
11/01/09 06:34:01
>>188
ミドルのGTS250でも36fps出るようなベンチだから
やっと動作対象に入ったレベルだけどね

URLリンク(tshimizu.cocolog-nifty.com)

192:デフォルトの名無しさん
11/01/09 18:22:58
初歩的な質問で恐縮ですが
C++での配列確保するときに

テクスチャの配列を動的に作りたいと思っています。
GLubyte teximg[TEXHEIGHT][TEXWIDTH][4];

vector型などでは大丈夫なのだと思っていますが
GLubyteでこのような取り方をするためにはどのような記述になるのでしょうか

193:デフォルトの名無しさん
11/01/09 18:47:34
GLubyte *p = malloc(4 * TEXWIDTH * TEXHEIGHT);

194:デフォルトの名無しさん
11/01/09 18:56:08
出来れば3次元で。。。ソースの変更箇所が多く

195:デフォルトの名無しさん
11/01/09 19:02:40
GLubyte (*teximg)[TEXWIDTH][4] = malloc(4 * TEXWIDTH * TEXHEIGHT);
てかOpenGL関係ないじゃないか

196:デフォルトの名無しさん
11/01/09 19:15:23
お手数かけてしまい申し訳ないです
GLubyteでの格納の仕方があるかと思い

mallocでCと同じようにやるのですね。ありがとうございました

197:デフォルトの名無しさん
11/01/09 22:31:10
>>196
(一般的に)GLubyte = unsigned char だぞ。
メモリのとり方なんぞCである以上そんな変わらん。
C++ならnewな。

198:デフォルトの名無しさん
11/01/10 16:01:18
フォームのりサイズされたときに、回転とかしてたオブジェクトが元に戻ってしまいます
以下抜粋
glViewport(0,0,w,h);

//投影変換モード
glMatrixMode(GL_PROJECTION);

//行列を初期化
glLoadIdentity();

//平行投影
if (w<=h)
glOrtho(-nRange,nRange,-nRange*(h/w),nRange*(h/w),-nRange,nRange);
else
glOrtho(-nRange*(w/h),nRange*(w/h),-nRange,nRange,-nRange,nRange);

//モデルビュー変換モード
glMatrixMode(GL_MODELVIEW);

//行列を初期化
glLoadIdentity();
}
glLoadIdentifyの使い方がいまいちよくわかりません
どなたかご教示お願いします


199:デフォルトの名無しさん
11/01/10 16:02:33
それはglLoadIdentityがわからないのではなくて、
行列がわからないのだ

200:デフォルトの名無しさん
11/01/10 16:14:51
そりゃ最後でMODELVIEW行列を単位行列にしてるんだから当たり前だろう。
そこでMODELVIEW行列をいじる必要はない。



201:デフォルトの名無しさん
11/01/13 17:25:30
freeglutを使っているんですが、
マウスの左ボタンと右ボタンの同時押し判定ってできますか?
VS2010のC++で開発してます

202:デフォルトの名無しさん
11/01/13 18:20:15
先に押されたほうが離される前にもう一方が押されたら同時押し開始ってことで

203:デフォルトの名無しさん
11/01/14 13:19:06
どちらかのボタンを押したらタイマー開始して、指定した時間以内にもう片方のボタンが押されたら同時に押されたってことで

204:デフォルトの名無しさん
11/01/14 15:16:11
openglでjpegの読み込みを行おうとしているのですが
decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_start_decompress" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_stdio_src" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_CreateDecompress" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_destroy_decompress" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_read_header" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_finish_decompress" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_read_scanlines" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_std_error" は未解決です。
fatal error LNK1120: 外部参照 8 が未解決です。
とエラーが出ます
jpeg8bのヘッダーのライブラリを入れて行っているのですが、どうすればいいでしょうか?
VB2010C++でビルドしました

205:デフォルトの名無しさん
11/01/14 15:18:48
ヘッダだけじゃなくてソースも入れないとだめなんじゃ?

206:デフォルトの名無しさん
11/01/14 15:30:54
一瞬VBで使おうとしてるのかと思った

207:デフォルトの名無しさん
11/01/14 16:12:52
>>204
そりゃlibjpeg.aがリンクできてない。
もとからリンクするように指定してないのか、見つけられないか。


208:デフォルトの名無しさん
11/01/14 21:58:38
物体と球の衝突シミュレーションをやっているんだが、なかなか反射がうまくいかない
例えば中心(0,0,0)の立方体をgluSolidcube()で作ったとき、この立方体のどこに球が当たっても反射するようにするには球の座標を(x,y,z)として

if( x≧-1 && x≦1 && y≧-1 && y≦1 && z≧-1 && z≦1)

この条件だとどうしてだめなんでしょうか?

209:デフォルトの名無しさん
11/01/14 22:08:49
半径は?

210:デフォルトの名無しさん
11/01/14 22:22:37
何がやりたいのかいまいちわからんが、
A:球の中心
B:衝突地点
C:衝突地点の法線
A-Bで入射ベクトルを計算してCを軸とした反射ベクトルを計算すればいい。


211:デフォルトの名無しさん
11/01/14 22:37:24
>>209
仮に半径r=0.5とすると、衝突判定に用いる球の座標には半径分(0.5)加算しています
球はgluSolidSphere()で描画しています

>>210
球が物体に接触しても反射しないで物体を完全に貫いてしまったり、一部の面でのみ跳ねかえったりして不思議に思い質問しました

212:デフォルトの名無しさん
11/01/14 22:58:45
OpenGL全然関係ないような気がするけど
>>211
実際には
if( x≧-1-r && x≦1+r && y≧-1-r && y≦1+r && z≧-1-r && z≦1+r)
みたいにしてるってことですかな。で、当たってたら球の速度の壁の法線方向を反転。
一度跳ね返ったら、干渉しなくなるまで次の反射の処理を行わないみたいな条件入れないとだめ。
とか。


213:デフォルトの名無しさん
11/01/14 23:01:36
まあ何をどう計算してるかわからないので原因もはっきりしないな。

214:デフォルトの名無しさん
11/01/15 01:12:52
>>207
libjpeg.aとはなんでしょうか?
jpeg.libとヘッダー各種はプロジェクトのプロパティ設定で指定しているのですが違うのでしょうか?

215:デフォルトの名無しさん
11/01/15 01:26:24
>>214
jpeg.libだけだと足りてないのでは?
dumpbin /symbols で、_jpeg_start_decompress他がjpeg.libに含まれてるか要確認。

216:デフォルトの名無しさん
11/01/15 03:03:39
>>208
> if( x≧-1 && x≦1 && y≧-1 && y≦1 && z≧-1 && z≦1)

これ立方体だろ?

217:デフォルトの名無しさん
11/01/15 09:14:50
立方体の中に球の中心が入り込んだら反射にしてるんじゃね

218:デフォルトの名無しさん
11/01/15 10:50:46
>>208
球と立方体の衝突はそこそこめんどくさい
衝突判定でググってみれば

219:208
11/01/15 11:57:57
もっと勉強してよく考えることにします
レスくれた方ありがとうございました

220:デフォルトの名無しさん
11/01/15 16:59:36
GLUIに詳しい方いらっしゃいますか?

221:デフォルトの名無しさん
11/01/15 17:52:45
>>220
それが質問なのか?

222:デフォルトの名無しさん
11/01/15 17:52:54
いませんさようなら

223:デフォルトの名無しさん
11/01/16 10:41:33
>>219
まじめに衝突だけ勉強するなら分厚い本とかあるけど
とりあえずなら「実例で学ぶゲーム3D数学」って本がオススメ
色んなことがひと通り書いてある

224:201
11/01/17 15:15:36
>>202 >>203
亀レス(´・ω・)スマソ
二人のレスのおかげで解決できました
ありがとう

225:デフォルトの名無しさん
11/01/19 12:40:07
GL_LINE_STRIPで線が描写されたりされなかったりするんですが、
(起動して描写される回とされない回がある)(頂点はglVertex3d)
GeForceでなくQuadroじゃないとダメって事なんでしょうか?

Qtでハードウェアアクセラレーションを有効にするにはどうすればいいか
わからないので教えてください。

226:デフォルトの名無しさん
11/01/19 13:00:51
225です。
GL_LINE_STRIPの件については自己解決しました。



227:225
11/01/19 14:08:33
と思ったらやっぱり表示されなくなる事がありました。
CAD作成中なんですけど
線は円柱で書いた方が良いんでしょうかね?

228:デフォルトの名無しさん
11/01/19 14:20:57
GeForceでGL_LINE_STRIPは使えます。
描画されないことがあるのなら、それは描画しないことがあるプログラムだからです。
デバッグしてください

229:デフォルトの名無しさん
11/01/19 15:34:53
プログラムに問題がありそうな気がするけど、これだけの情報からではなあ。
あとラインとかポイントは自体不明瞭な動作をすることがあるし、よくわからん。

230:225
11/01/19 21:57:44
線の生成過程に領域外アクセスが含まれており、うまくいくときとうまくいかない時があった模様です。失礼致しました。

以下参考
配列をvectorにした所、領域外アクセスを検出できました。
C言語による最新アルゴリズム辞典のspline.cのmaketable関数中にありました。

231:デフォルトの名無しさん
11/01/23 01:53:37
半年以上悩んでいる問題があるので質問します。

OpneGLでV同期を取る方法ですが、
SwapBuffers()を高優先度スレッドで呼ぶようにし、
メインスレッドをシグナルで起こすように実装しています。

なぜかSwapBuffers()がV同期待ちをしてくれず、
高優先度スレッド側でsleep()を呼ばないと、
メインスレッドにCPU時間が回らない状況です。

高優先度スレッドでV同期&スワップバッファが終わった後、
メインスレッド起動、メインスレッドの仕事が終わったら
V待ち関数(条件変数待ち)でメインスレッドをスリープし、
あまった時間を低優先度スレッドに渡すようなフレームワークを考えています。

グラフィックボードはATI Radeon HD4550です。
wglSwapIntervalEXT()をつかってもV同期が取れません。
PCのOpenGLの設定も、常にV同期待ちを行うように設定しています。

原因、解決方法がわかるか方がいたらお願いします。


232:デフォルトの名無しさん
11/01/23 04:28:23
OpenGLはスレッドセーフではないから

233:デフォルトの名無しさん
11/01/23 04:46:49
Geforceだと、glMap2*()のuorderかvorderが10超えるとINVALID_VALUEになるのはなんでなんだろな
MAX_EVAL_ORDERは4000程なのに。
Radeonだとすんなり通る
今時glMap2*()なんて使ってる方が悪いのか

234:デフォルトの名無しさん
11/01/23 05:13:23
そもそも、Radeonの結果が正しいのを確認して言ってるの?
ustrideやvstride等の指定と、uorderかvorderとその配列の内容が間違っていて
バッファオーバーランしてるのを、ATIのドライバがエラー出さずに動いてるだけかも知れないだろ

因みに、glMap2*()のINVALID_VALUEの内容はもっと他にあるからね

GL_INVALID_ENUM is generated if target is not an accepted value.

GL_INVALID_VALUE is generated if u1 is equal to u2, or if v1 is equal to v2.

GL_INVALID_VALUE is generated if either ustride or vstride is less than the number of values in a control point.

GL_INVALID_VALUE is generated if either uorder or vorder is less than 1 or greater than the return value of GL_MAX_EVAL_ORDER.

GL_INVALID_OPERATION is generated if glMap2 is executed between the execution of glBegin and the corresponding execution of glEnd.

GL_INVALID_OPERATION is generated if glMap2 is called and the value of GL_ACTIVE_TEXTURE is not GL_TEXTURE0.

235:デフォルトの名無しさん
11/01/23 05:22:21
>>231
OpenGLの初期化を行ったスレッド以外ではGL関数を使わない設計にする
普通はメインスレッドで初期化を行って、メインスレッドでしかGL関数を使わない
他のスレッドは、GL関数を使わない処理や何かに回す

236:デフォルトの名無しさん
11/01/23 16:20:23
>>234
レスありがとう
Radeonではもっともらしい結果が出力されたので、Geforceドライバが悪いと思い込んでいました。
よく考えたら、glMap2*()なんて枯れたコマンドが正しく動作しないはずがないですよね。
もっとよくテストしてみます。ありがとう。

237:デフォルトの名無しさん
11/01/23 17:06:58
>>236
>glMap2*()なんて枯れたコマンドが正しく動作しないはずがないですよね。

どうなんだろう、そのコマンドは調べてないけど
3.0以降は2.0以下の機能を切り捨てるって話じゃなかったっけ?>GPUベンダ


238:デフォルトの名無しさん
11/01/23 19:19:08
>>237
glMap2*()は確かにdeprecatedみたいだったので、compatibility profileで動かせば
サポートされると思って使っていたんですが、違うのかな。
しかしどちらにしろ、引数を変えるとエラーが出るという状態なので機能切り捨てのせいではないんじゃないかと思います。

239:デフォルトの名無しさん
11/01/23 19:30:11
glMapってglEval呼ぶ度に計算(CPU側で)してそうだから、
コントロールポイントが常に変わるようでなければ
自分で計算した結果をバッファに置いた方が速いと思うよ。
それかシェーダー組むか。

glutSolidTeapotが重いのもそのせいだと思う。

240:デフォルトの名無しさん
11/01/24 21:52:47
>>235
回答ありがとうございます。

>普通はメインスレッドで初期化を行って、メインスレッドでしかGL関数を使わない

SwapBuffers()の呼び出しをメインスレッドで実行するようにしても、
SwapBuffers()がV同期してくれません。
(すべてのGL関数はメインスレッドからコール)

何か根本的に間違ってそうなので、実装を再確認してみます。


241:デフォルトの名無しさん
11/01/25 16:08:09
WebGL対応サイトがfirefox4やchromeのbeta9入れても
古いノートパソコンだと動いてくれない
ビデオカードの制約あるの?

242:デフォルトの名無しさん
11/01/25 16:24:50
少なくともシェーダー要るぞ。
正確なバージョンは知らん。


243:デフォルトの名無しさん
11/01/25 18:56:44
firefox3のままプラグイン入れるだけでwebgl動かす方法ないでしょうか
管理者権限ないパソコンで動かしたい

244:デフォルトの名無しさん
11/01/26 03:57:02
>>240
PFD_DOUBLEBUFFERで作ってglDrawBuffer(GL_BACK)はしてる・・よね?
でもRADEONは知らないけど、うちのオンボードチップだとSwapBuffers()でV同期しない
同じコードでGeForceならV同期する。ドライバによるんだと思ってたんだが
wglSwapIntervalEXT()って知らなかったので今度試してみるトン

245:デフォルトの名無しさん
11/01/26 09:50:24
電機メーカーは結構参加してるのに任天堂ってkhronos groupに入ってなかったんだな

246:デフォルトの名無しさん
11/01/26 12:39:25
そういうグループに入るメリットって何なの?

247:デフォルトの名無しさん
11/01/27 00:13:53
策定中の仕様に文句言えるとか
枯れた技術選ぶ企業には不要

248:デフォルトの名無しさん
11/01/27 07:24:05
>>247
たとえ1社が文句言ったって、普通は採用されないだろ
グループ内の多数の企業が同意して、しかも更に細かい差違を吸収した折衷案が
グループの総意として仕様に盛り込まれるんだろ?

「グループ内の多数の会社が同意して」という案は、
グループに入っていない多くの企業もたいていは求めてるものじゃないの?
文句を言えるくらいじゃメリットは分らんな

249:デフォルトの名無しさん
11/01/27 18:54:21
でもどこも参加しなかったらkhronos自体が成り立たないし
会社でかいくせにコミュニティに貢献しないケチって思われるデメリットはあるかも

250:デフォルトの名無しさん
11/01/27 21:13:56
オープンな規格を使うのは自分のところだけでやっていくと効率悪い場合だけど
任天堂はグラフィックスに関しては必要ないんじゃね
プラットフォームはそう頻繁に変わらないしデベロッパはいるしな

251:デフォルトの名無しさん
11/01/28 15:16:39
VisualStduio2010のC++でfreeglutを使っているんですが、
キーボードの同時押し判定のやり方がよくわかりません。
URLリンク(d.hatena.ne.jp)
このページによると、freeglutではキー同時判定ができると
書いてはあるのですが、具体的な方法が載ってませんでした
glutKeyboardFunc()を使うと思うんですが、誰か知りませんか?

252:デフォルトの名無しさん
11/01/28 17:07:48
freeglutは知らないけど、普通のglutでもglutKeyboardUpFunc使えば同時押し判定できるけど
やり方は>>202-203と同じで

つかそのブログの人今でもブログ続けてるみたいだし、直接コメントでも付けて聞けばいいんじゃないの?

253:デフォルトの名無しさん
11/01/28 17:40:09
管理者権限ないlinuxでWebGL動かしたい
firefo4動かすまではできた
firefoxのabout:configで
libGL.soまでのパス通したらいいらしいんだけど

なんとかmesaなんとか
という関数がねえ

というエラーを吐いて何も表示されない

多分mesaなんとか.soというのは自力make installしないといけないんだろうけど
どのファイルからmakeしたらいいのかわからない

254:251
11/01/28 19:44:24
>>252
glutKeyboardUpFuncは知りませんでした。
さっそく使ってみます。ありがとうございました。

255:デフォルトの名無しさん
11/01/28 21:50:58
glWindowPos2i() で文字を描こうと思うですが、
error: ‘glWindowPos2i’ was not declared in this scope
と言われてコンパイルできません。
gl.hとglut.hをインクルードしてますが、他に何をインクルードすればいいでしょうか。


256:デフォルトの名無しさん
11/01/28 22:34:33
>>255
openGL1.4 のextensionなので、自分でどうにかするか、もしくはglewとかの便利ライブラリを使ったりする

257:255
11/01/28 22:39:17
ありがとうございます。
それでやってみます。


258:255
11/01/28 23:11:26
しっかしOpenGL1.4の機能でさえextensionが必要とか、
狂ってるとしか思えないのですが・・・・もう少し何とかならないのか

259:デフォルトの名無しさん
11/01/29 00:41:14
そろそろOpenGL3のcore profileの関数を拡張機能を使わずに使えるようにして貰わないと4k introの作成に支障がでる.
大量の拡張機能の関数のポインタをゲットするのに関数名を文字列リテラルとしてプログラムに埋め込まないといけない.
それ用のgl3.hとopengl3.libとドライバをnVidiaが配布してくれれば・・・.

しかしそれ以外に現在の拡張機能を拡張機能でないようにする利点はあるだろうか。

260:デフォルトの名無しさん
11/01/29 18:16:25
>>243
firefoxってportable版だと管理者権限いらんのとちゃうか?
firefox4版があるのかは知らんが。

261:デフォルトの名無しさん
11/01/29 18:18:42
>>253
ってlinuxか。犬板で聞けば?

262:デフォルトの名無しさん
11/01/30 04:37:34
ちゃんと読んではないが、mesa3d.orgに書いてあるインストール方法ではだめなのか?

263:デフォルトの名無しさん
11/02/04 23:24:00
半年悩むくらいなら、nvidiaのフォーラムとかで聞いたほうが早い

264:デフォルトの名無しさん
11/02/05 14:47:07
FBOをいじっているのですが
フレームバッファとレンダーバッファの違いがよくわかりません。

レンダーバッファとはどういうものなのですか?
またどのような場面で活用するんでしょうか?

よろしくお願いします。


265:デフォルトの名無しさん
11/02/05 15:14:00
レンダーバッファは対象
フレームバッファはコンテナ

266:デフォルトの名無しさん
11/02/06 03:10:07
床井先生のところによると
>フレームバッファオブジェクトはカラーバッファやデプスバッファなど, いくつかのバッファの集合体 (collection) です.
>カラーバッファにレンダリングされた画像を後でテクスチャとして使うので, カラーバッファにはテクスチャを割り当てます.
>デプスバッファは隠面消去処理だけのために使う (内容をテクスチャとして参照しない) ので, レンダーバッファを割り当てます.

267:デフォルトの名無しさん
11/02/07 22:56:40
レスありがとうございます!

>>265
余計わからなくなりました・・・。orz

>>266
両方フレームバッファに割り当てていましたが
>(内容をテクスチャとして参照しない)
とのことで
「テクスチャとして再利用しない場合は
レンダーバッファの方が効率いいよ!」
みたいな感じなのでしょうか?


268:デフォルトの名無しさん
11/02/07 23:08:06
フレームバッファーオブジェクトはレンダリングする先(カラーバッファー)とデプスバッファー(+ステンシルバッファー)を持つ。
で、カラーバッファーとデプスバッファーはその用途に応じて、書き込み先をレンダーバッファーもしくはテクスチャーを指定できる。
描画結果をテクスチャーとして使う予定があるなら、もちろん後者のほうが手軽。
でも名前からもわかるようにレンダーバッファーは描画専用に用意されているものだから、マルチサンプルが使えたり比較的高パフォーマンス?っていう利点がある。

269:デフォルトの名無しさん
11/02/07 23:18:44
>>268
なるほど!
わかりやすい説明ありがとうございます!

>マルチサンプルが使えたり
この部分を知らなかったのでもう少し調べてみようと思います。
パフォーマンス以外にも何か色々と使えそうな気がします。

270:デフォルトの名無しさん
11/02/12 17:43:17
質問です。
メモリリークがあったので調べていたら
以下のところで発生していました。

glGenTextures( 3, tex );

で、以下のように書き直したら発生しなくなりました。

if( tex [0] ) glDeleteTextures( 3, tex );
glGenTextures( 3, tex );

glGenTexturesはGPU上にこれから確保するメモリ領域に
IDをつけて返すものだと思っていたのですが
メインメモリにも何か領域を確保していたりするのでしょうか?

よろしくお願いします。

271:デフォルトの名無しさん
11/02/12 21:39:45
tex 配列のサイズは?

272:デフォルトの名無しさん
11/02/12 21:46:03
固定値3です。

273:デフォルトの名無しさん
11/02/12 22:10:42
よく分からないけどglDeleteTexturesしないで何回もglGenTexturesしたら
メモリーリークしてたってこと?それはそうなるんじゃない・・・?
VRAM確保してもどっかにテクスチャ保存しとかないとアプリ切り替えでVRAM破棄された時に困りそうだし

274:デフォルトの名無しさん
11/02/12 22:26:35
テクスチャの実体はファイルから読み込んで
VRAMに転送したあと破棄しています。

リークしているのはここ(ファイル読み込み)かな?と思って調べてみても
特に問題が見当たらず、問題を切り分けていくと
どうやらglGenTexturesの部分でリークしていました。

自分の認識ではglGenTexturesの段階では
VRAM内へのID(ハンドル)だけの発行で
メインメモリにはテクスチャの領域等は
何も確保していないものだと思っています。

VRAMが溢れるならともかく何故メインメモリが?と不審に思い
こちらに質問させて頂きました。

XP/VC2010です。

275:デフォルトの名無しさん
11/02/12 22:47:16
>>274
IDとテクスチャーの関連付けの情報がメインメモリ上にあるのではないか、
そして、同じIDにたいしてglGenTexturesを繰り返すことによって、
破棄されない情報が溜まり続ける、とエスパーしてみる。


276:デフォルトの名無しさん
11/02/12 23:03:42
glGenTexturesした時点で違うIDになるのでは・・・w
多分、glGenTexturesで確保したら必ずglDeleteTexturesするってことで問題はないんだけど、
何か自分の信念と違う動きをするのでGLの内部の実装が気になるってことじゃないかなあ

内部実装は分からないけど、もし1つのアプリがVRAMを専有しっぱなしだと他のアプリがVRAM使えなくなるので
WindowsのglGenTexturesはVRAM領域だけじゃなく一時的に解放するための管理領域も確保すると思うよ
WindowsのGLはDirectXのラッパーのはずだからDirectXのデバイスロスト関係を調べてもらった方がよい気が

277:デフォルトの名無しさん
11/02/12 23:08:36
>>276
あ、ごめん。うろ覚えで適当言ったけどwglがDirectXのラッパー?ってのは間違いかもしんない
なんかどっかでそういう話を見た気がしただけ

278:デフォルトの名無しさん
11/02/12 23:31:04
専用の単体プロジェクトを作ってテストしました。
どうやらメモリのリークを発生させるには
glGenTexturesだけでなくglBindTextureも必要なようです。
ID確保前にglDeleteTexturesを行えばリークは発生しません。

(↓もりもりメモリが食われていくのでテストする際は注意してください。)

void test::update(void)
{
for( unsigned i = 0; i < 100000; i++ )
{
for( unsigned j = 0; j < 3; j++ )
{
glGenTextures( 3, this->m_textureId );
glBindTexture( GL_TEXTURE_2D, this->m_textureId[j] );
}
}
}

glBindTextureが現況だとすると
たしかにメインメモリ上にラッパというか
IDとHWとの関連付けの情報を格納しているかもしれませんね。

279:デフォルトの名無しさん
11/02/20 01:59:42.20
おいおい、

>for( unsigned j = 0; j < 3; j++ )
このループの中で

>glGenTextures( 3, this->m_textureId );
すれば、都合9つのテクスチャIDを取得しようとしてるんだがw

こうするべき
glGenTextures( 3, this->m_textureId );
for( unsigned j = 0; j < 3; j++ )
{
glBindTexture( GL_TEXTURE_2D, this->m_textureId[j] );



280:デフォルトの名無しさん
11/02/20 02:15:39.72
そこはどうでもいいんじゃね?
お行儀悪いのは確かだが。

281:デフォルトの名無しさん
11/02/20 16:07:14.57
というかdeleteしてないんだから当然だろ。
これをメモリリークとは言わん。出直してこい。

282:デフォルトの名無しさん
11/02/20 16:43:37.64
>>281
デリートし忘れ=メモリリークじゃないの?

283:デフォルトの名無しさん
11/02/20 20:17:24.42
意図せず尿が出るのが「お漏らし」、
意図して尿を出すのが「小便」。
あとはわかるな?

284:デフォルトの名無しさん
11/02/20 20:23:55.12
はい終了
URLリンク(ja.wikipedia.org)

285:デフォルトの名無しさん
11/02/20 20:30:30.61
>>283
おむつに連続でおしっこすると漏れてしまうんですが
吸水できなくなって溢れるならともかく何故横漏れが?

286:デフォルトの名無しさん
11/02/20 21:17:51.77
>>283
ライブラリがバグのために漏らしてしまうのも、
ライブラリ使用者が意図せずして(不注意で)漏らすのも、
どちらも同じメモリリークだと思ってた

287:デフォルトの名無しさん
11/02/20 21:42:31.28
この場合は意図して漏らしてるんだから「小便」だろう。


288:デフォルトの名無しさん
11/02/20 22:20:03.92
どーでもいいが下品だな

もう少しお上品に喩えてくれないか

289:デフォルトの名無しさん
11/02/20 23:06:41.16
要件にない機能を「バグ見つけたよ」とか言われると、ちょっとカチンとくるよな

290:デフォルトの名無しさん
11/02/21 10:19:09.10
バグあったから消しといたよ

291:デフォルトの名無しさん
11/02/22 16:57:14.41
OpenGL ESだけど良いですか?
glTexParamter()でGL_CLAMP_TO_BORDERがないのですが、
同様の機能を実装するにはどうすればいいですか?
テクスチャーで(s,t)を[0,1]以外の領域を指定された場合、境界色を返せればいいです。


292:デフォルトの名無しさん
11/02/22 20:18:11.46
freeglutでNURBS曲面を描こうとしている者です。
VC2010で開発してます。

glEnable(GL_AUTO_NORMAL);
gluBeginSurface( theNurb );
gluNurbsSurface( theNurb, Nu+4, U, Nv+4, V, 3, 3*Nu, P, 4, 4, GL_MAP2_VERTEX_3 );
gluEndSurface( theNurb );
glDisable(GL_AUTO_NORMAL);

って感じに書いたら、曲面を描画することはできたんですが、
法線が反対向きみたいで、曲面が暗くなってしまいます。
GL_AUTO_NORMALで計算した法線の向きを逆向きにするにはどうすればいいでしょうか?

293:デフォルトの名無しさん
11/02/23 04:58:09.30
glFrontFace(GL_CCW);
でどう?

294:291
11/02/23 11:06:31.17
>>291
自分で調べたが、まっとうな方法はない。
ちょうど今このスレでその話題が展開されていた。
URLリンク(article.gmane.org)
なんでGL_CLAMP_TO_BORDERないんだよ....


295:デフォルトの名無しさん
11/02/23 12:42:57.91
Clamp to Edgeじゃいかんの?まぁClamp to Borderとは意味は違うけど。
テクスチャーの最外周を目的の境界色に塗っておけば代用は効きそう。
まぁ2次元的に扱うとかの理由でピクセル単位でテクスチャー表示しないといけない場合とかは、2のべき乗テクスチャーを諦めないといけなくなるから、
パフォーマンスとして好ましくないけど。

296:デフォルトの名無しさん
11/02/23 17:53:53.27
それじゃBORDERの代用にはならないでしょ。
元の画像width, heightに1ピクセル継ぎ足してwidth+1, height+1にすればいいけど、もっとめんどくさい。
プログラマブルシェーダーが使える2.0系列ならやりようはあるけど、
1.0系列ならあきらめるしか。

297:デフォルトの名無しさん
11/02/23 19:11:58.33
だからそういってるじゃん。

298:デフォルトの名無しさん
11/02/24 01:47:01.46
複合したアフィン変換の行列が
以下のよう定義されている場合

回転成分とスケーリングってどの
値を見ると判別できるのでしょうか?


0.866 1.0 0.0
-0.5 1.73 0.0
5 0 1

299:デフォルトの名無しさん
11/02/24 02:11:36.83
スケーリングとトランスレーション、ローテーションとトランスレーションの組み合わせならぱっと判るだろうけど、その組み合わせはぱっと見で読み取るのは難しいんじゃないか。

300:デフォルトの名無しさん
11/02/24 03:37:33.24
一番右の列の数値それであってます?
直行してないと難しいんじゃないでしょうか


301:デフォルトの名無しさん
11/02/24 17:55:18.74
glGenBuffers()で作った頂点オブジェクトに付ける変数名ってどうしてますか?
vbo_name, vbo_posとかつけてましたが、もっといい名前がありそうで...
くだらない質問ですみません。

302:デフォルトの名無しさん
11/02/25 01:20:38.92
glLoadMatrixdって内部でどんな実装で
処理しているの関数なのですか?


303:デフォルトの名無しさん
11/02/25 01:44:42.52
もしglLoadMatrixの単なる使い方を聞いてるのでなければ
MesaっていうMITライセンスのOpenGL実装がありますよ

304:デフォルトの名無しさん
11/02/27 02:04:25.33
独立した2つのカメラの位置の
丁度中点となる新しい位置をOpenGLで
簡単に求める関数ってありますか?

305:デフォルトの名無しさん
11/02/27 03:20:01.84
足して割ればいいんじゃね?

306:デフォルトの名無しさん
11/02/27 08:22:00.46
(x1+x2)/2, (y1+y2)/2, (z1+z2)/2

307:デフォルトの名無しさん
11/02/27 17:38:11.56
>>306
ありがとうございます!

308:デフォルトの名無しさん
11/02/27 21:05:54.41
それでよかったのか!?

309:デフォルトの名無しさん
11/02/27 23:28:25.94
w

310:デフォルトの名無しさん
11/02/27 23:36:56.42
位置だけじゃなくて視線方向や上の方向も半分にする方法も要るんじゃ・・・

311:デフォルトの名無しさん
11/02/28 00:55:10.85
クォータニオンってすごく難しくて
自分でアルゴリズム作れないのですが
OpenGLに関数ないですか?

312:デフォルトの名無しさん
11/02/28 01:04:36.07
数学系でOpenGLならglmがよさげ


313:デフォルトの名無しさん
11/02/28 01:06:25.16
>>311
クォータニオン扱うライブラリのソースみて実装すればいい。使うだけなら簡単だろう。

314:デフォルトの名無しさん
11/02/28 01:07:25.69
だからOpenGLはグラフィックライブラリで、
数学ライブラリじゃないっつーの

315:デフォルトの名無しさん
11/02/28 01:24:20.06
半端な俺は参考書見ながら実装しようとしたけれど
行列の計算の仕方が参考書と違ってて断念したorz

316:デフォルトの名無しさん
11/02/28 02:22:25.89
PyOpenGLを使ってみようと思いまして
↓このページのPythonのコードをコピーして実行してみたのですが
URLリンク(www.not-enough.org)
何も起こりませんでした。
うちのPCにはPython2.71が入っているのですが
PythonでOpenGLを使う場合、他にも何かインストールなりしないといけないのでしょうか。

317:デフォルトの名無しさん
11/02/28 03:47:29.33
>何も起こりませんでした
パルプンテでも唱えたような物言いだな。

318:デフォルトの名無しさん
11/02/28 10:30:20.96
最低、ウィンドウが表示されたとか、エラーメッセージは出たか、
とか書かないとエスパー募集にしかならない。


319:デフォルトの名無しさん
11/02/28 21:47:10.69
テキストファイルにtest.pyって名前で保存してダブルクリックしても
何も起こりませんでした。

↓このページのこのコードをコピーして
URLリンク(www.not-enough.org)
#!/usr/bin/python

from OpenGL.GL import *
from OpenGL.GLUT import *


def draw():
glClearColor(1.0, 0.0, 0.0, 0.0)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glFlush()
glutSwapBuffers()


glutInit(sys.argv)
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH)
glutInitWindowSize(320, 240)
glutCreateWindow("PyOpenGL 1")
glutDisplayFunc(draw)
glutMainLoop()

>>317-318
EclipseのPyDevで実行するとこんなエラーが出ました
Traceback (most recent call last):
File "C:\Users\username\workspace\PyOpenGL\src\PyOpenGL1.py", line 3, in <module>
from OpenGL.GL import *
ImportError: No module named OpenGL.GL

320:デフォルトの名無しさん
11/02/28 22:09:16.33
2つの異なる座標系A、Bをカメラから見たどちらかの
座標系に統一する場合

Aの逆行列 x Bの行列 x GL_PROJECTION行列

で求めることが可能ですか?



321:デフォルトの名無しさん
11/02/28 23:23:19.62
>>319
ImportError: No module named OpenGL.GL
OpenGL.GLという名前のモジュールがありません

知らんけどそのページの頭に
>PyOpenGL は、Python で OpenGL を使用するためのモジュールです。
って書いてあんだからPyOpenGLってのが必要なんじゃねの?

PyOpenGLでググれ

322:デフォルトの名無しさん
11/02/28 23:28:46.00
課題の季節か?

323:デフォルトの名無しさん
11/02/28 23:44:48.33
>>320

「Aの逆行列」とは、どの座標系で定義されたベクトルを
どの座標系で定義されたベクトルに変換するための行列か?

「Bの行列」とは、どの座標系で定義されたベクトルを
どの座標系で定義されたベクトルに変換するための行列か?

「GL_PROJECTION行列」とは、どの座標系で定義されたベクトルを
どの座標系で定義されたベクトルに変換するための行列か?

それぞれ、「座標系X -> 座標系Y」というフォーマットで説明してみてくれ

そして、結局のところ「どの座標系で定義されたベクトルを
どの座標系で定義されたベクトルに変換したいのか」を
同じフォーマットで説明してみてくれ

でなければ、それが [Aの逆行列 x Bの行列 x GL_PROJECTION行列] で求められるのか
答えようがない

324:デフォルトの名無しさん
11/03/01 02:08:19.18
>>311
床井さんのところのサンプルに、クォータニオン使ったやつがあったはず。

325:デフォルトの名無しさん
11/03/01 11:53:16.09
> 2つの異なる座標系A、Bをカメラから見たどちらかの
> 座標系に統一する場合

専門用語の使い方がおかしいから誰も真意を理解できない。
座標系はA,B,カメラの3つだと思う。
変換行列とはある座標系(X)からある座標系(Y)に変換するもの。
その逆行列なら(Y)から(X)へ変換する。あとは自分で考えろ。

326:デフォルトの名無しさん
11/03/03 18:07:25.06
#include <GL/gl.h> でOpenGLを読み込んだ時と、
#iclude <GLES/gl.h> でOpenGL ESを読み込んだ時で処理を変えたいのですが、
必ず定義されている #ifdef で使える文字列とかあったら教えてください。

327:デフォルトの名無しさん
11/03/03 22:57:10.80
今から学び始める場合、GLSLなども最初から考慮した方がいい?
それとも最初の内は見なかったことにして1.xの機能に絞って学んだ方がわかりやすい?

328:デフォルトの名無しさん
11/03/03 23:24:40.07
後者の方が良いよ、絶対。

329:デフォルトの名無しさん
11/03/04 06:50:44.21
分かった。ありがとう

330:デフォルトの名無しさん
11/03/04 21:39:51.87
Win9xにプリインストールされてるのって
opengl32.dllだけ?
glu.dllとかglu32.dllは手動だっけ?

331:デフォルトの名無しさん
11/03/05 19:00:47.69
いやopengl32.dllもないだろ。
ソフトウェアレンダー?

332:デフォルトの名無しさん
11/03/05 20:25:13.61
98にはあるようだけど95はMicrosoftからダウンロードしないと駄目っぽい

333:デフォルトの名無しさん
11/03/06 02:04:51.78
>>331
OpenGLの文字が荒ぶるスクリーンセイバーってNT系だけでしたっけ

>>332
なるほどどうもです

334:デフォルトの名無しさん
11/03/06 02:37:24.97
OpenGLで気に入らないのは右手座標系なこと
左手座標系なら左手でフレミングの法則の手を作りながら
イメージ沸かして右手でコーディングできるのに
右手座標系ではそれが出来ない!非常に残念です。
あと右手座標系はZ軸が自分に向かう方が大きい値なのが許せない
観測者視点になっていなくて気持ち悪い。
どんな経緯で右手座標系に決めちゃったんでしょうか。詳しい方います?

335:デフォルトの名無しさん
11/03/06 02:59:05.87
単純に数学で扱ってるのが右手系だからだろ。

336:デフォルトの名無しさん
11/03/06 03:00:08.38
別に左手座標系で組んだっていいんですよ?
変換行列で最後に座標系を反転するようにして辻褄合わせとけば問題ないはず
経緯は知りません

337:デフォルトの名無しさん
11/03/06 03:22:01.36
>>2
>JavaScriptから --> ???

JavaScriptから --> WebGL

丁度 WebGL 1.0 のリリースが発表されましたが、Firefox 4.0, Chrome 9,
Safari nightly, Opera preview をインストールすれば直ぐ使えてラクチンです。
これから OpenGL を勉強したい人も、ブラウザで簡単に試せるので良いかも。

お勉強サイトは↓ここがお勧め。

    URLリンク(learningwebgl.com)

説明が丁寧なので、JavaScript, WebGL, OpenGL, 三角関数、シェーダー、
全てに於いて初心者に毛が生えた程度の自分でも楽しく理解出来ました。

338:デフォルトの名無しさん
11/03/06 11:39:00.90
>>334
殆どの物理や数学の本だと右手座標系だったと思うので
その習慣がそのままOpenGLに採用されただけじゃない?

射影行列のどっかを変えれば左手系になる。

そういえばWebCLというのも出てくるらしいが・・・

339:デフォルトの名無しさん
11/03/06 11:46:30.42
>>338
> そういえばWebCLというのも出てくるらしいが・・・

ちょ・・・ マジで?

340:デフォルトの名無しさん
11/03/06 13:02:50.01
>左手座標系なら左手でフレミングの法則の手を作りながら
>イメージ沸かして右手でコーディングできるのに

かわいい


341:デフォルトの名無しさん
11/03/06 13:31:38.89
美少女が、モデル表示しながら、
えっと、えっと。。。OpenGLは右手座標系だから。。。
ってコーディングしてるんだぜ。
そりゃ、かわいいだろ。


342:デフォルトの名無しさん
11/03/06 13:52:02.07
>>339
マジだよ
策定完了まではWebGLのように今から2年以上掛かるだろうって言われてるけど

URLリンク(www.conceivablytech.com)

343:デフォルトの名無しさん
11/03/06 14:10:34.25
>>341
美少女の、モデル表示しながら、
えっと、えっと。。。OpenGLは右手座標系だから。。。
ってコーディングしてるんだぜ。
そりゃ、かわいいだろ。


こうだろ?


344:デフォルトの名無しさん
11/03/06 15:09:40.78
>>342
うたがって悪かった。

いやー、しかし、時代はそんな方向を向いているのか。
びっくりした。

345:デフォルトの名無しさん
11/03/06 15:12:38.57
美少女読者モデルが3Dプログラミングを始めたと聞いて


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