トップページ⇒tech
984コメント341KB

OpenGLスレ Part14

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2010/01/19(火) 20:46:36
クロスプラットフォームの3D API OpenGLに関する話題を扱うスレッド。
現在のバージョンは3.2
http://www.opengl.org/

== OpenGLと一緒に使われるツール&ライブラリ ==
苦労したくなかったらとりあえず入れとけ。
・glx:    XからOpenGLを使うためのライブラリ。普通は直接は使わず意識する事はない
・glut:   クロスプラットフォームなツールキット。でもさすがに古くさい
・glew:   これを入れないと拡張機能が使えないor使いにくい
・glxgears: 歯車が回るベンチマーク。-infoでOpenGLのバージョンが見られる。OpenGLの動作確認はこれで
・glxinfo:  自分の使っているカードのOpenGLの機能が全てリストアップされる。

== 必読書 ==
・OpenGLプログラミングガイド 原著第5版 (通称赤本)
・OpenGL(R) Reference Manual (通称青本)
・OpenGL Shading Language (通称だいだい本)
・OpenGL(R) SuperBible: Comprehensive Tutorial and Reference
・OpenGL ES 2.0 プログラミングガイド
・GLUTによるOpenGL入門
・GLUTによるOpenGL入門2 テクスチャマッピング
あると便利。
・ゲームプログラミングのための3Dグラフィックス数学

== チュートリアルサイト ==
床井研究室: http://marina.sys.wakayama-u.ac.jp/~tokoi/oglarticles.html
NeHe:    http://nehe.gamedev.net/

== 前スレ ==
Part13: http://pc12.2ch.net/test/read.cgi/tech/1221215309/
0934デフォルトの名無しさん2010/10/23(土) 22:30:47
>>933
(´A`)…。
0935デフォルトの名無しさん2010/10/23(土) 22:33:59
>>933
?
OpenGL 4.0でハードウェアのテッセレーターがついたのは知ってるよ。
そもそも最新のHWテッセレーションはジオメトリシェーダーじゃなくて制御シェーダー、評価シェーダーの2つのプログラマブルシェーダー
と固定機能のテッセレーターで実現されるものなんだが。

名前こそ同じテッセレーションだけど性格が違うだろGLUのテッセレーターとは。
4.0でついたモノは主にLOD制御用だしGLUのは閉じたパスの集合から凸ポリゴン形成するものだろ。
0936デフォルトの名無しさん2010/10/23(土) 22:35:15
fbxやってるんだけど、ボーンの親子関係ってどうやって取得するの?

KFbxMesh.GetNode() で取れるKFbxNodeはどうも違うみたいだし…。

宜しくお願いします!
0937デフォルトの名無しさん2010/10/23(土) 22:54:22
それOpenGL関係無いよね?
0938デフォルトの名無しさん2010/10/23(土) 23:01:28
>名前こそ同じテッセレーションだけど性格が違うだろGLUのテッセレーターとは。
性格が違うってさ…
用途を変えてるだけで同じ物を使ってるだけでしょ

結局、テッセレーションとか語れる奴はこのスレにはいねーんだね
0939デフォルトの名無しさん2010/10/24(日) 00:10:53
>>938
(´A`)…。
0940デフォルトの名無しさん2010/10/24(日) 01:29:16
>>938
('A`)…
0941デフォルトの名無しさん2010/10/24(日) 02:24:14
>>933(=938?)
あの・・・GLUのテッセレータは、GPUのテッセレータとは用途も仕組みも何もかもが違うんです・・・。
同じテッセレーションと呼ばれてますが、名前が同じだけで、関連する技術ではありません。
(関連くらいはあるかな・・・?思いつかないけど。)

GLUのテッセレータの目的とか使い方は、
http://glprogramming.com/red/chapter11.html
この辺を見て頂ければ分かるかと。
0942デフォルトの名無しさん2010/10/24(日) 02:41:00
あのテッセレーションやテッセレータとは、GPUでもGULでも意味は同じなんです

テッセレーションってのは、簡単に言うとポリゴン分割

GLUで提供された用途が、根底でテッセレーション処理を行っているのに

>名前が同じだけで、関連する技術ではありません。

って、モロに表面しか理解出来てないかと…

シェーダーを使って影だしてる描画メソッドがあって
それを使うだけの人間が、そのメソッドについて
影を出すんであってシェーダーとは用途も仕組みも何もかもが違うんです・・・。
とか言い出してるようなモン

0943デフォルトの名無しさん2010/10/24(日) 02:44:20
>>942
('A`)…
0944デフォルトの名無しさん2010/10/24(日) 02:44:21
>>932
コールバック無しで作ると、汎用性が無くなっちゃいません?
別の機会でも使えるように作ると、結局コールバックとかクロージャ渡しとかまぁとにかくそんな感じの
仕組みになるような気がします。

あと、テッセレートする前に与えられた頂点を平面に投影すると思うんですけど、その平面って
どうやって決めるんでしょう。その辺の知識が無いので、もし良かったらどんな感じで作ったのか
教えてぷりぃず。
0945デフォルトの名無しさん2010/10/24(日) 02:49:38
>>942
いや、あの・・・941のURLは見て頂けました・・・???
932さんが言ってるテッセレーションてのは、そのページのPolygon Tessellationのことなのです。
GPUではまだ実装されてないし、効率良くやるのはちょっと難しいんじゃないでしょうかね・・・。
0946デフォルトの名無しさん2010/10/24(日) 02:54:28
GLUで提供されてる機能が、== テッセレーションなんて無知もいい所

このスレには、gluTessBeginPolygonをシェーダーで実装できるレベルの人間がいない事は分かった…
0947デフォルトの名無しさん2010/10/24(日) 02:55:54
>>946
(´A`)…。
0948デフォルトの名無しさん2010/10/24(日) 02:58:09
勝手にテッセレーションの意味を、個人の意味で置き換えないで下さい

***さんの言ってるシェーダーてのは、そのページのノーマルマップのことなのです

って、シェーダーってのは、ノーマルマップ”だけ”するモンじゃないだろ

テッセレーションも一緒だ
テッセレーションとは、ポリゴンを再分割することで
GLUで提供してる機能を指すんじゃないだろ
0949デフォルトの名無しさん2010/10/24(日) 03:02:12
誰もそんなこと言ってませんよ・・・。

もう!どうしたらいいの!?コレ!?
0950デフォルトの名無しさん2010/10/24(日) 03:05:34
>GPUではまだ実装されてないし、効率良くやるのはちょっと難しいんじゃないでしょうかね・・・

あのさ OpenGL 4.0 の機能紹介とかで余裕でデモされてるでしょ
さらに言えば、DirextX11では、普通にSDKサンプルで中級でシェーダーテッセレーションがあるし

DirectXでは始まってるが、GLもこれからプログラマブルシェーダーが全盛になれば
技術を理解せずに、自分で実装出来ないライブラリが無ければ分かりませんってレベルは淘汰される
0951デフォルトの名無しさん2010/10/24(日) 03:08:15
>テッセレーションとは、ポリゴンを再分割することでGLUで提供してる機能を指すんじゃないだろ

もともとGLUの話してるのに、勝手に最近のHWのLOD用途のテッセレーターと勘違いして何騒いでるの?
933 = 938 = 942 = 946 = 948
0952デフォルトの名無しさん2010/10/24(日) 03:11:09
>932さんが言ってるテッセレーションてのは、そのページのPolygon Tessellationのことなのです。

これってモロgluTessBeginPolygonの説明じゃんw

gluTessBeginPolygonの処理はテッセレーション処理を行って凸面のプリミティブを作るのであって
凸面のプリミティブを作ることをテッセレーションとは言わない
0953デフォルトの名無しさん2010/10/24(日) 03:11:41
>>950
( ´A`)…
0954デフォルトの名無しさん2010/10/24(日) 03:15:15
>勝手に最近のHWのLOD用途のテッセレーター

無知もここに極まれりw

別にシェーダーのテッセレーションでgluTessBeginPolygonと同等の機能も実装出来る
テッセレーションにより、低ポリゴンモデルのエッジを分割して
輪郭を綺麗にして低ポリゴンなのを気づかれにくくする等

当然、凸面のプリミティブに分割する事も有り

テッセレートの用途ってか、理解が無いのがモロバレ
0955デフォルトの名無しさん2010/10/24(日) 03:17:51
まぁそんな話はどうでもいいので、932さんが作ったテッセレータの
速度とか精度とかがどんなもんか知りたいです。
0956デフォルトの名無しさん2010/10/24(日) 03:20:19
>>954
その最新のフィーチャーのテッセレーターは自己交差ポリゴンの再分割とか、複数の閉じたパスによって作られた図形から描画するべき部分の三角形の算出とかできるわけ?
理解があるならそこらへんの実装例を見せてもらいたいね。
0957デフォルトの名無しさん2010/10/24(日) 03:22:13
もともと、GLUのテッセレーション処理に相当する部分は、
最新のOpenGLではシェーダーで行う方向なのに、頓珍漢な発言してるのを突っ込んでるだろw

さらに、GLUのテッセレーションだろうが、シェーダーのだろうが
テッセレーションの処理の意味は同じ

gluTess***関数のテッセレーションと、シェーダーのは違うとかw
プログラマブルシェーダーって意味わかる?
自分で組むんだよ?
gluTess***関数相当の処理だって組めるに決まってるじゃん
0958デフォルトの名無しさん2010/10/24(日) 03:26:57
>その最新のフィーチャーのテッセレーターは自己交差ポリゴンの再分割とか、複数の閉じたパスによって作られた図形から描画するべき部分の三角形の算出とかできるわけ?

ふざけるなよw
自分で判断出来ないくせに、えらそうに書き込んでたのかよwww

ちゃんと OpenGL 4.0 のシェーダーのテッセレーションを調べて
出来ないと判断してから書き込めよ
0959デフォルトの名無しさん2010/10/24(日) 03:31:12
>>957
お前プログラマブルシェーダーでなんでも完全に自由に作れると思ってるのかw

>>944
頂点群が2次元的に分布している前提で話すけど、適当な3点とってそれらを含む平面を計算→法線ベクトル算出、法線ベクトルを例えばZ軸に重ねる。
Z座標は無視して三角形だけで描画できるようなインデックスを求める→インデックスが持つ意味は元の頂点の座標でも一緒だからそれを用いて描画でいいんじゃないか?

3次元的に分布しているGLUテッセのサンプルは見たことがないな。
0960デフォルトの名無しさん2010/10/24(日) 03:37:02
なんでも完全に自由に作れないとシェーダー組めないレベルの人は黙ってるべきw
0961デフォルトの名無しさん2010/10/24(日) 03:41:05
>>960
( ゚д゚ )
0962デフォルトの名無しさん2010/10/24(日) 03:43:48
>>959
三点の選び方によっては精度が落ちそうなので、できるだけ外周に近い三点を選ぶとかするのかなー
とか思ったんですけど、実用的にはそこまでこだわる必要は無いってことでしょうかね。

3次元的に分布してる場合は、GLUでも平面の法線を明示してやればおっけーでしたよ。
サンプルは確かに見たことないですね。
0963デフォルトの名無しさん2010/10/24(日) 03:56:52
>>962
まぁ誤差のせいで投影時にある2頂点が一緒になってしまうとかならあると思うけど、もともとそこまで近い頂点なら片方消しても良さそうだ。

法線を精度よく求めるなら離れたところにある3頂点のセットを何サンプルかとればまず問題はないだろう。
0964デフォルトの名無しさん2010/10/31(日) 22:10:15
.NET Framework4 C++/CLI でOpenGLのプログラミングについて
書いてあるサイトありますか?
C++/CLI OpenGL 勉強し始めたばかりですけど,
一緒にマスターしたいと思っています.
Win32 API, C++は結構バッチリだとおもいます
0965デフォルトの名無しさん2010/10/31(日) 22:55:28
じゃぁそれでやろうぜ!!
0966デフォルトの名無しさん2010/11/01(月) 01:09:16
どうしても,
Formアプリで作りたいんですけど
0967デフォルトの名無しさん2010/11/01(月) 08:39:04
OpenTKのGLControlをフォームにはる
GLControlのPaintイベント内で普通にOpenGLで描画
描画の最後にGLControlのSwapBuffesを呼び出す
これだけ
0968デフォルトの名無しさん2010/11/01(月) 09:18:37
>>964
指摘したいことがあれこれあるけどスレ違いな部分だな
0969デフォルトの名無しさん2010/11/01(月) 12:09:45
ヒント : 過疎スレ
0970デフォルトの名無しさん2010/11/02(火) 00:40:33
OpenTK をインストールしたんだけど
GLControlのアイコン(?)が出てこない
Visual Studio 2005です
助けてください ToT
0971デフォルトの名無しさん2010/11/02(火) 08:43:56
>>970
プロジェクトの参照設定でOpenTK.GLControl.dllを参照するば
ツールウィンドウに出てくる筈だよ。
0972デフォルトの名無しさん2010/11/02(火) 22:13:03
>>971
ありがとうございます.うまくいきました
OpenTKって日本語ドキュメント誰か書いてほしい.
0973デフォルトの名無しさん2010/11/02(火) 23:35:13
>>972
よく言った!
・・・あとは、分かってるな?
0974デフォルトの名無しさん2010/11/02(火) 23:36:48
言いだしっぺの法則というやつだな
0975デフォルトの名無しさん2010/11/02(火) 23:42:04
まずは中学英語の復習からだな
0976デフォルトの名無しさん2010/11/03(水) 09:29:17
ソースがドキュメントです
0977デフォルトの名無しさん2010/11/03(水) 10:05:36
ソースよりも醤油か塩コショウ派です
ソースは味覚音痴御用達です
0978デフォルトの名無しさん2010/11/03(水) 20:40:14
え,もしかしておまえが訳せってこと?
僕は,あとは自分で調べろってことかと,
鈍くてすいません
0979デフォルトの名無しさん2010/11/05(金) 10:55:35
ttp://www.codeproject.com/KB/openGL/glenabledview/glenabledview.gif
こんな感じのアプリを作りたいのですが
右下のメニュー用のフォームとかってどうやって作るのですかねぇ
0980デフォルトの名無しさん2010/11/05(金) 11:29:04
>>979
どうやってつくるんでちゅかね?
たいへんでちゅね〜?

おちゅかいのおーえすはなんでちゅか?うぇwww
0981デフォルトの名無しさん2010/11/05(金) 11:30:42
>>980
死ね糞
0982デフォルトの名無しさん2010/11/05(金) 11:33:27
>>981
くそもらしちゃったんでちゅか?おむつはそのままにしておきまちょうねwww
0983デフォルトの名無しさん2010/11/05(金) 11:43:01
>>979
質問するスレが違うですよ。

ttp://www.codeproject.com/KB/openGL/glenabledview.aspx が元記事ですね。
このサイトはユーザー登録するとソースをDLできます(ライセンス注意)。
ソースを覗くとGUI部分はMFCで作成されてますね。

GUIは基本的に色々な言語で実装できます。
何で作るのかは知りませんが、該当のスレで質問して下さいな。

例えば、cやc++ならwinapiで実装するならwinapiスレで。
c#ならc#スレでって感じよろしく。

まぁ、基本的にはMDIで実現できますよ。
c#ならフォームの中にフォームを表示すれば可能です。
0984デフォルトの名無しさん2010/11/05(金) 11:48:09
>>983
ありがとうございます。
フォームの中にフォームとか
MDIとか情報が少なすぎて。

レス数が950を超えています。1000を超えると書き込みができなくなります。