OpenGLスレ Part14 ..
[2ch|▼Menu]
2:デフォルトの名無しさん
10/01/19 20:57:05
== 過去スレ ==
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から  --> ???


3:デフォルトの名無しさん
10/01/19 20:57:59

== モデルデータ ==
三角形を表示するのに飽きたらこれ。スタンフォードバニーが表示できたらレンダラー童貞卒業だ。

・Stanford大学: URLリンク(graphics.stanford.edu)
   一番有名なうさぎのモデルほか。PLY形式。

== パーサー ==
OpenGL自体は3Dのファイルフォーマットを何も規定していないが、
何らかのフォーマットを読めないと面白くないので以下は一例。
(他に使いやすいライブラリがあったらスレで紹介してください)

・TriMesh2: URLリンク(www.cs.princeton.edu)
   PLY,OBJほか
・GLMetaseq: URLリンク(kougaku-navi.net)
   メタセコイア、だと思うのだが使った事がないので知らない

== その他 ==
・Mesa: URLリンク(www.mesa3d.org)
   フリーのOpenGLのソフトウェア実装。どうしても実装のソースが見たい人用。
   ただしお世辞にもわかりやすいとは言えない



4:デフォルトの名無しさん
10/01/19 21:01:27
以上です。Part13に比べてかなり勝手に変更してますがご了承ください。
テンプレは追々改良していくという事で。
Web上でもまとまったOpenGLの情報が全然無くて(床井先生の所ぐらい?)、
正直何とかならんものかと思ってます。


5:デフォルトの名無しさん
10/01/19 21:09:42
言い出しっぺの法則というものがあってだな

6:デフォルトの名無しさん
10/01/19 21:10:31
997でテンプレ変えて床井氏の本が必読って、
赤本読めば入門書必読ってことはないだろ。

7:デフォルトの名無しさん
10/01/19 21:13:38
お疲れ様です。

早速質問申し訳ないのですが、OpenGL3.0以降ではセレクションモードが非推奨になっており、代替手段を探していたところOcculusion Queryを使うといいようなことが書いてありましたが、
Occulusion Queryをセレクションに使ったサンプルが見つからなかったため、どのように使用すればいいのかや、もしサンプルが載ったサイトがあれば教えて頂けると幸いです。

8:デフォルトの名無しさん
10/01/19 21:15:12
>1乙
nvidiaとamdのサイトは外さないほうがよかったんじゃないかな。
NVのサンプルコードなんかは床井先生のとこほど切りつめてないけど、
その分クラスにまとめてあって若干ライブラリライクだから
改造してなんか作ってみるとっかかりとして丁度良いと思うし。

9:デフォルトの名無しさん
10/01/19 21:16:32
C#でモデルデータ表示するならC#、OpenGL対応のゲームエンジン使うのが楽そう。

10:デフォルトの名無しさん
10/01/20 16:59:27
質問です。よろしくお願いします。
ウインドウとビットマップのそれぞれのレンダリングコンテキストを
引数にwglShareListsを呼ぶと失敗します。
ウインドウとビットマップのディスプレイリストは共有することはできないんでしょうか?

11:デフォルトの名無しさん
10/01/20 19:41:26
ぶっちゃけ、GLSLやる前にDirectXやXNAやれって思う。
大体考え方は同じだし、情報量の多い方で先に基礎的な考え方をみにつけたほうがいい。

12:デフォルトの名無しさん
10/01/20 22:49:53
>>10
URLリンク(www.opengl.org)
read spec, grep fail.

13:デフォルトの名無しさん
10/01/21 15:27:35
だれかこの本読んだ?
目次を見る限り入門用には良いかなと思うのですが感想教えてください。

OpenGL+GLSLによる3D‐CGアニメーション (I・O BOOKS) (単行本)
酒井 幸市 (著)


14:デフォルトの名無しさん
10/01/21 15:59:26
glreadPixels()の使い方を教えてください。

15:デフォルトの名無しさん
10/01/21 18:25:43

URLリンク(glprogramming.com)

16:デフォルトの名無しさん
10/01/21 19:03:27
日本語でおk

17:デフォルトの名無しさん
10/01/21 19:43:03

URLリンク(www.google.com)

18:デフォルトの名無しさん
10/01/21 19:50:05
助けてください、点光源がスポットライトになって180度分しか明るくならないです。

glLightfv (GL_LIGHT0+index, GL_POSITION, (GLfloat*)xyzw);
glLightfv (GL_LIGHT0+index, GL_AMBIENT, (GLfloat*)black);
glLightfv (GL_LIGHT0+index, GL_DIFFUSE, (GLfloat*)argb);
glLightfv (GL_LIGHT0+index, GL_SPECULAR, (GLfloat*)argb);
glLightf (GL_LIGHT0+index, GL_SPOT_CUTOFF, 180.0f);

最後のGL_SPOT_CUTOFFはあってもなくても一緒です。
30度ぐらいにすると細いビーム状になります。
どうすれば点光源に戻りますか

19:デフォルトの名無しさん
10/01/21 20:21:33
最近この手のなぞなぞは外してばっか
逆向きにもう1個180度分のライト置けばいいんじゃね

20:18
10/01/21 20:54:06
>>19
ああ、それで解決です……んなわけあるか。
いや本当に困っています。まじ助けてください。

点光源にするには

glLightf (GL_LIGHT0, GL_SPOT_CUTOFF, 180.0f);

で良いんですよね????
なぜか半分しかライトが当たりません。
SPOT_DIRECTIONで方向も制御できるし……

21:デフォルトの名無しさん
10/01/21 22:07:36
こんな事言うとプログラマぶるシェーダ厨乙!って言われるかもしれんが
固定機能のライティングの関数をあれこれ調べるよりvertex or fragment shaderで
ライティングの計算したほうが楽じゃね?

22:デフォルトの名無しさん
10/01/21 22:08:47
プログラマぶるシェーダ厨乙!

23:デフォルトの名無しさん
10/01/21 22:21:39
GLSLおいしいです(^p^)

24:デフォルトの名無しさん
10/01/21 22:38:05
>>18
マジでで困ってるならソースアップすれば
そこだけ切りだせば小さいでしょ。
値もわからないその5行で原因はなにか聞かれてもわからんて

25:デフォルトの名無しさん
10/01/21 22:53:00
最初に貼られた >>18 の内容って、単に色関係の定義しか無い。
ライトの種類を指定しているコードを何故最初に貼らないのか、って言うと
多分意味もわからずコピペで作ったから。

しかし今日の1時間ほど前から OpenGL を追いかけ始めたばかりの俺でも、
"OpenGL 光源種類 指定" 辺りでググったらそれっぽい情報いくつも見つかるんだが、
きっとしばらくしたら正解も見えてくるだろうと思いつつ、もうすぐ寝る



26:デフォルトの名無しさん
10/01/22 01:26:29
>>18
つ 法線ベクトル


27:18
10/01/22 09:05:10
出来たー \(^o^)/
2chを頼った俺が馬鹿だった。二度と聞かねーよ馬鹿
こんなクソスレ何の役にも立たない。

28:デフォルトの名無しさん
10/01/22 14:22:54
要点も出さずに質問して他人に頼って、挙句にこの言い草
ゆとり世代の印象がまた一つ悪くなる訳ですね

29:デフォルトの名無しさん
10/01/22 14:39:53
特定の人間がバカなのとゆとり世代は関係ないから

30:デフォルトの名無しさん
10/01/22 23:43:51
各種ライブラリ紹介スレ2
スレリンク(gamedev板)

3D初心者ならいきなりOpenGLとか触らないで
↑のスレに載ってるようなライブラリをまず試したほうが良いんじゃね?
それで不満が出てきたら直接OpenGL使ったりすればいい。

31:デフォルトの名無しさん
10/01/23 09:04:21
Unreal EngineやOrge3Dはそれだけで超重量級だからどうかな
OpenGLはサイコロ以上を表示しようとすると全部自分で書かなければならなくなるのが何とも

32:デフォルトの名無しさん
10/01/23 09:22:10
紹介されているようなさらに上層のライブラリやフレームワークの使い方
なんて学ぶ時間があったら、むしろその時間をコアな方に割いた方がいいんじゃね?っていう
入門チュート以上の事をしようとしたら急に大変になるってのは、結局何をやっても同じ。

むしろそれぞれのライブラリにはまた別の思惑や仕様や概念がある訳で、
果たして初心者がついてこれるだろうかって言う懸念が


33:デフォルトの名無しさん
10/01/23 11:21:56
まあでもOpenGLエキスパートになったところで仕事無いけどな!

34:デフォルトの名無しさん
10/01/23 11:24:08
つ研究職

35:デフォルトの名無しさん
10/01/23 14:00:27
最近OpenGLを触り始めたんですが、
グラフィックソフトみたいにサイコロを二つ重ねておいて、
減算処理等をする便利関数みたいのはありますでしょうか?
とりあえず頂点データだけで、UV等は考慮しなくても
構わないのですが。

36:デフォルトの名無しさん
10/01/23 14:20:26
意味が全くわからないけど、たぶん無い

37:デフォルトの名無しさん
10/01/23 14:41:03
そうですか。残念です。
四角形以上のポリゴンを三角形分割できる関数とかがあったので、
加減算できる便利関数もありそうかなと思ったのですが、
妄想過ぎました。アルゴリズムがないか探してみます。

38:デフォルトの名無しさん
10/01/23 15:00:15
>サイコロを二つ重ねておいて、
>減算処理等をする

フラグメントシェーダ的な意味合いなのかとも思ったが、
多分エスパーすると Boolean 合成の事を言っているのでは無いかと想像


39:デフォルトの名無しさん
10/01/23 15:25:36
用語がわからず説明不足でした。申し訳ありません。
ブーリンアン合成です。ソフトのメニューにも書いてありました。
URLリンク(sylphys.ddo.jp)
こんな感じの処理がしたいと思っていました。

40:デフォルトの名無しさん
10/01/23 16:05:41
>>39
URLリンク(www.opencsg.org)


41:デフォルトの名無しさん
10/01/23 16:12:06
>>39 普通に考えて、OpenGL はグラフィクスハードウェアを叩く時に便利な
共通の仕様を持った、割りと低レベル寄りのライブラリ、っていう位置づけであって、

別に何でも出来る高級言語みたいな物じゃないからそういう、
何かのソフトウェアが実現するべき(=自分で実装するべき)高級な機能なんて
ある訳ないような気もする。

てか、例えば大きな四角面4枚(三角面8枚)のサイコロに対して、そこにそれより小さなサイコロを
当てて XOR しようとしたとき、頂点数は合計されるだけじゃすまないよな?
勝手に頂点数増えられても困る


42:デフォルトの名無しさん
10/01/23 16:22:04
>>40
自分のやってることができそうです!
用語を知らないと全然見つけられませんね。
ありがとうございました!!

43:デフォルトの名無しさん
10/01/23 16:41:05
>>41
君がOpenGLの仕様策定や技術のコントリビューターならそういう主張もいいだろう。
しかし、日常で君がやっていることといったら、OpenGLのその低レベルAPIとやらを使ったコーディングじゃないのか?
つまり君はGLの有用なライブラリを作っているわけでもコントリビュートしてるわけでもないんだから、各種ライブラリに依存しまくってコーディングしている初心者とあまり差はない。

44:デフォルトの名無しさん
10/01/23 17:05:29
>>43 は安価ミスだろうか


45:デフォルトの名無しさん
10/01/23 17:13:32
ただの文盲じゃねw

46:デフォルトの名無しさん
10/01/23 17:25:57
java,dotnetだと、人様がこしらえたライブラリをちょっと使えるようになったからって「自分スゲー」って思い込んじゃう奴が多い。
ニートとかゆとりとはまた違う種族のようだ(ある意味DQNとも言う)。

47:デフォルトの名無しさん
10/01/23 18:10:07
だがしかし全自動洗濯機が実用化されてスイッチポンで洗濯できる時代に、
超人的技能で桶と洗濯板でゴシゴシ洗濯できる人間がすごいとは思わないけどな。
確かに電気代もかからないしきれいに洗えるけど、今の時代には無駄なテクノロジーだよね。
江戸自体ならスーパースターだけど今の時代なら無能な趣味人。

48:デフォルトの名無しさん
10/01/23 18:14:05
>>47 どういう流れでそんな話をしてるのか全然わかんないんだが
>>41 の内容は、「ソフト側の都合で変わるような高級な処理はライブラリに含まれていないよ」
って主旨の発言なだけ。 なんか勘違いしてないか?頭悪いのか?

49:デフォルトの名無しさん
10/01/23 18:20:48
洗濯機こわれたときにどう行動するかってところじゃないの。
あと、洗濯機で洗えないものも扱えるか、扱えないか。


50:デフォルトの名無しさん
10/01/23 18:29:49
今の時代C+POSIXのみでプログラムしてる奴もいないし、WEBアプリ程度のクライアントをGTKみたくCだけで頑張っちゃうのもバカらしいって思う人は多い。
Cのみで頑張ってアプリを作ろうとしても、javaなら1/10の時間でWEBアプリなら1/100の時間で同じアプリが作れる。
つまりライブラリとしてモジュール化してjava,rubyなどでもAPIへのアクセスを容易にすることまでがOpenGLとかCG関係者の仕事。
そうじゃないといくら仕様が良くても使ってくれないし、いくら待っても人は増えずGLアプリも増えず、結局microsoftに行ってしまうだろう。

51:デフォルトの名無しさん
10/01/23 18:29:56
そもそも洗濯機をスイッチポンで使えるようにして提供する側だって意識ないのか。

52:デフォルトの名無しさん
10/01/23 18:35:08
ここは洗濯機の話と独り言を言うスレのようです


そんな事より、普段GLSL書くときどこまでシェーダに任せるべきだろう。
もちろん内容によるが、例えばラスタライザ的な処理をGPU側にするか、あるいは場合によっては
CPU側でテクスチャとして起こしてしまうかで時々迷う。

53:デフォルトの名無しさん
10/01/23 18:37:43
あ、>>52 は 「どちらでもいいけど、ライブラリ化する時の話」 ね。

Vertex Shader 上の情報が無いと激しく非効率だったり実現がしんどい場合は迷う必要ないから。

54:デフォルトの名無しさん
10/01/23 20:40:11
>>50
Java や ruby から簡単に使えるようにしてくれー
ボク馬鹿だからC++使えないしアルゴリズムもわかんないの

って言う人が世の中には大勢いるんだよね。
確かに需要はある。

>>52
GPUに渡すデータ量が少なくなるように選ぶな、俺だったら。
GPUメモリの上限がいまだに2GBなのはなんとかならんのか。足りん。

55:デフォルトの名無しさん
10/01/23 20:51:32
いまどき理由もなくC++(やD)を使ってるような奴はただの基地外だろうな。

56:デフォルトの名無しさん
10/01/23 20:53:52
どうせあれだろ。
「新しいテクノロジーを勉強するのは嫌だ〜」っていつの時代にもいる頭固いオッサンなんだろう。

57:デフォルトの名無しさん
10/01/23 21:01:29
良く知らんけどjavaやrubyからでもopenGLは使えるんじゃないの
openGLをラップしたりサポートしたりする便利ライブラリやフレームワークもあるんだし
openGLはそれらから呼ばれる描画限定ライブラリで十分

58:デフォルトの名無しさん
10/01/23 21:25:52
いや。
そういうことじゃないと思うよ。
openGLの低レベル関数を使った高レベルライブラリでアプリ開発ユーザーのこと考えた使いやすいのは今になってもまったく出ないよねってことだと思う。

59:デフォルトの名無しさん
10/01/23 22:48:34
もうちょっと要件を具体的にお願いします。
ぼんやりとした設計があるならばご説明願います。
実在するライブラリとの比較でも構いません。
DXのライブラリでも構いません。
洗濯機みたいな変な喩えは要りません。
痛い業界論みたいなのも要りません。

60:デフォルトの名無しさん
10/01/23 22:52:49
つまり、材料いれてボタンを押せば料理ができる電子レンジみたいなのが欲しいってことじゃね?

61:デフォルトの名無しさん
10/01/23 23:18:48
javaとかdotnetの世界で、ネイティブアプリの設計論とかWEBアプリのアレとかコレとかを勉強したほうがいいと思うよ。
巨大ライブラリの設計論すらもそっちの世界では既に完成されてるから。
opengl1.2のころから使ってますっていう干からびたオッちゃんじゃ石頭だから多分理解できないだろうけど。

62:デフォルトの名無しさん
10/01/23 23:24:03
多分、普段高級言語しか使っていなくて、C/C++みたいなローな言語が理解出来ず
逃げ出したクチで、そんな中、アプリケーション寄りのお手軽便利な何でも機能みたいな物は無いよ、
というレスを どういう訳だか 曲 解 し て、自分の正当性を訴えなければ収まらない気分になり、
(自意識過剰)

ここはム板のスレなのに大上段に構えて的の外れた業界論とか語りだしちゃって、
 (技術は無いがプライドは高い、というオッサンに多い傾向)

「俺はお前よりも上の存在だ」 という空気を醸し出そうとするも、周りをポカーンとさせてしまい、
もう元には戻れず、しかし元々自己中でKYでもある為か、一人で満足行くまで
勝手に話しだし、頭の悪い長文書いても読まれずスルーされるだけなのにそれにも
気づけない低脳中学二年生が、

二度とやってこないようなスレを作るにはどうしたらいいでしょうか。 これが要件になります


63:デフォルトの名無しさん
10/01/23 23:31:45
仮にライブラリを作ったとしても、61みたいなクズには使わせたくないな、
と本気で思う。

64:デフォルトの名無しさん
10/01/23 23:32:17
GNUみたいに既にあるものを再実装するって言うので十分だと思うよ(大昔だと車輪の再発明は悪だとか言ったりしていた)。
例えばDirectXのAPI名をそのままGLライブラリ(ブリッジ)として再実装するとか、少なくとも低レベルAPIをIDEのサポートもなく(それもCで)ゴニョゴニョするのはただの禿げたマゾか露出狂の変態だろうね。
別にCでシコシコできなくはないが、よく考えてみればコーディングの大半の時間は、IDEの自動ジェネレーションで十分なことにほとんど費やされていると思うよ。
よっぽどの理由がない限り、大昔のwin32apiなんかを直接使ってる人はほとんどいないだろうけどそれと同じ。
今はopenglじゃないほうをやってるからこれといった要望はないけど、開発スタイルが未だに猿の惑星レベルなのは驚いた。

65:デフォルトの名無しさん
10/01/23 23:34:19
>>62
顔真っ赤にして何いってんの?このオッサンは(笑)

66:デフォルトの名無しさん
10/01/23 23:34:43
みんな同じ世界にいるわけじゃないんだから、それぞれいいようにしたらいいがな
openGLが必要なら使えばいいし、いらないなら使わなきゃいいだけだろ

67:デフォルトの名無しさん
10/01/23 23:39:47
使うとしても低レベル過ぎて使いづらいってのは、opengl関係者のやる気をまったく感じられない。

68:デフォルトの名無しさん
10/01/23 23:40:14
結局、開発速度と実行速度のバランスや、バグがどこまで追跡できるか、あたりで決まると思う。

昔、他人のライブラリを使っていて、自分のバグかライブラリのバグか判別困難で苦労したから、
出来る限り自前で作るようにしてる。

69:デフォルトの名無しさん
10/01/23 23:55:23
>>65
お前 >>43 だろ。文意が読めない辺りよく似ている


70:デフォルトの名無しさん
10/01/24 00:09:10
>>64 最初の2行を読み直して、ん???と思ったんだが、なんかあれか?遠まわしに

「自分はDirectXに慣れているから、誰かOpenGLをDirectX風にしてくれ。俺の為にそうしてくれ」

って言っているように見えた。 いやむしろ …なになに風、と言うよりもっと直球に、
「ソースレベルで DirectXと相互入れ替え出来るようにしてくれ。」 と言っているかのようにも見える。

もしもそうなら、Windows限定だとでも思ってるのか、あるいはMSに言え。
またDirectXでシュガー巻いたOpenGLなんかあったとしても、そもそも意味無いだろwww と気づけ
あと、もしも趣味でなく、仕事で使う用がある環境の場合には、少なくとも自社ライブラリくらい作ったり増えたりしてるから
一から全部なんて書かないだろうし、趣味でいじる分にはそれが楽しいってだけの人もいる。
世間は広いんだぜ

71:デフォルトの名無しさん
10/01/24 00:13:01
>64
レイヤーアーキテクチャに対する意識も低そうだな

72:デフォルトの名無しさん
10/01/24 01:09:42
>>64
> 例えばDirectXのAPI名をそのままGLライブラリ(ブリッジ)として再実装するとか
要はこれだけか。
イライラするほど内容の無い文章だな。

73:デフォルトの名無しさん
10/01/24 03:35:56
>>69
ばれたか(笑)

74:デフォルトの名無しさん
10/01/24 09:57:58
>>70 >72
アンカーをたどって読んでみたが、俺には
> 例えばDirectXのAPI名をそのままGLライブラリ(ブリッジ)として再実装する……のはただの禿げたマゾか露出狂の変態だろうね。
と読めた。
結論はD&Dとかでどうにかなるコードジェネレータくれくれと読んだ。

75:デフォルトの名無しさん
10/01/24 10:15:35
そのコードジェネレータ程度でどうにかなるようなことを何で今の時代でもシコシコCで書かなきゃあかんのか?と読めた。

76:デフォルトの名無しさん
10/01/24 15:34:59
複数の解釈が可能なのって釣りの典型か。

77:デフォルトの名無しさん
10/01/24 18:27:53
パースが簡単な3Dモデルのファイルフォーマットを教えてください

78:デフォルトの名無しさん
10/01/24 18:48:31
3DSもしくはOBJ

79:デフォルトの名無しさん
10/01/25 14:38:19
"パース"だけならcolladaも楽だけどw
やっぱobjじゃないスか。
見りゃ分かる。自分で書ける。

80:デフォルトの名無しさん
10/01/25 14:42:03
とりあえず、何らかのモデリングソフトで作ったモデルを
お試しで表示させてみる時の定番は Wave fron OBJ 形式な予感

※ただし俺の定番



81:デフォルトの名無しさん
10/01/25 14:43:01
typo
Wavefront OBJ形式=OBJな

82:デフォルトの名無しさん
10/01/25 15:46:36
objってモーションある?

83:デフォルトの名無しさん
10/01/25 16:08:59
>>82 モデルデータだって言ってるのに、なんでモーションの話なんか出てくるんだ
ある訳無いだろ。

含まれてるのは頂点とその結合、マテリアルや法線ベクトルなどの
もっともローレベルの基礎の情報だよ
アニメーションとかそんな別立ての情報は含まれて居ない


84:デフォルトの名無しさん
10/01/25 16:15:06
MMDとかそういう初心者向けのトイソフトから興味を持った人は勘違いしやすいんだけど、
モデルデータとモーションデータは、それぞれ話の軸が違う
かたやモデル情報は "形状の" データで、かたやモーションは時間軸での "変化の" 記録。

DirectX や COLLADA はこれらの味が違う情報を1ファイルにパックしてるが、
Wavefront OBJ はそんなパックを持っていないので、パースも楽だって話。データもASCIIだし

85:82
10/01/25 16:19:21
ごめん(´・ω・`)

86:デフォルトの名無しさん
10/01/25 17:54:47
いいのよ

87:デフォルトの名無しさん
10/01/25 19:13:45
いいのかよ

88:デフォルトの名無しさん
10/01/25 23:59:01
いいのだよ

89:デフォルトの名無しさん
10/01/26 00:17:23
イインダヨ

90:デフォルトの名無しさん
10/01/26 00:51:23
だみだコリャ

次いってみよう

91:デフォルトの名無しさん
10/01/26 22:13:02
質問スレではないのですが、もしやり方がわかる人がいたらお助け願いたいですorz

球体にデクスチャを貼り付けたいのですが、どうもうまくいきません。
もしよかったら回答ソースコード添付で教えていただけるとすごく助かります><;

球体のソースコード:URLリンク(www.dotup.org)
球体の画像データ:URLリンク(www.dotup.org)


92:デフォルトの名無しさん
10/01/26 22:49:23
そのソースmainが全くないようなんだけど、実際どこまでできてるの?
どこが上手くいかないのかわからないともなんとも助けようがない。
なんでもいいから解答をソースでくれって話なら質問スレでもお断わりだろう。

93:デフォルトの名無しさん
10/01/26 23:15:31
>>92
ご返事が送れて申し訳ないです。

現在のソースコード:URLリンク(www.dotup.org)

どうもmyDisplay関数内のglutSolidCubeを球体glutSolidSphereに変えたら表示されなくなってしまいます。
予想では、setupTextures関数が怪しいとおもってるんですが、
setupTextures関数が理解できません・・・

94:デフォルトの名無しさん
10/01/26 23:36:24
連投すみません。
>>92
mainはコピーミスで途中で消えていましたorz
すみません><

95:デフォルトの名無しさん
10/01/27 00:34:57
それはねーよ

96:デフォルトの名無しさん
10/01/27 00:43:00
違いましたかorz
どこだろう;

97:デフォルトの名無しさん
10/01/27 01:05:04
sun_old.tgaが無いので適当に128x128 32bit/pixelの画像作って動かしたら
球にも立方体にもテクスチャ張られてたよ。

98:デフォルトの名無しさん
10/01/27 01:17:32
sun_oldがないぞ。

99:デフォルトの名無しさん
10/01/27 01:18:51
先を越されたorz

100:デフォルトの名無しさん
10/01/27 04:42:54
これあれだろ?元々のソース自体、どこかにあった物を全部コピペで持ってきてて
実はC/C++ 自体全然わからなくて、でもどうしてもなんかテクスチャ貼ったキャラ動かしてみたくて
説明読んでも理解出来ないから他人にソース書いてもらいたいって、

そういう話だよね? 

101:91
10/01/27 06:58:18
いろいろと説明不測で申し訳ないですorz

>>97
球体と立方体にテクスチャは晴れるのですが、どちらも球体にしたいのです。
そこで、キューブ体glutSolidCubeを球体glutSolidSphereに変えたいのですが、
変えてしまうとキューブから球体に変えたオブジェクトが消えてしまいます。

質問の意味としては、球体2つにテクスチャを貼り付けたいという意味です。


>>98
sun_oldは、テスト用なので、気にせず>>91の画像を使っていただいてほしいです。

>>100
このプログラムは、「図解 OpenGLによる3次元CGアニメーション」と
URLリンク(sports.oit.ac.jp)
↑のサイトを元に作りましたが、全部コピペしたわけではありません。
ちなみに、現在のソースは、立方体と球体の画像取り込みからではない
テクスチャマッピングのソースを画像読み込みにし、オブジェクトが動くように
しただけです。すると立方体を球体にしようとしてもできないので、
質問させていただきましたorz

みなさんレスありがとうございます。説明不足でもうしわけなかったです。

102:デフォルトの名無しさん
10/01/27 08:32:29
みなさん数学ライブラリって何を使ってますか?
あと、能力による話だとは思うのですが
数学関係のクラスをどこまで自力で実装してますか?

103:デフォルトの名無しさん
10/01/27 13:51:49
中身の詰まった立方体(高さが非常に低いもの)の書き方を教えてください。

104:デフォルトの名無しさん
10/01/27 13:52:12
>>101
97だけど結果から言うと立方体でも球体でも動いた

>>91の画像は2つ入ってるけど使うのはtitan.tga?
sun_oldじゃなくても気にするなって言うが、全部解像度が違うんだから気にする

質問プログラムはsun_oldを使い、glutSolidSphereで動かないというなら、動かないプログラムと画像をupしないと意味が無い
glutSolidCubeをglutSolidSphereに変えて動かないなら変え方が間違ってるんだろうし
glutSolidSphere(1.0, 1, 1); とかに変えてんじゃないの?

105:デフォルトの名無しさん
10/01/27 14:34:11
>>103
中身が詰まってようが空だろうが外からは見えないから表面だけ定義すれば同じこと、
というのが面グラフィックの基本コンセプトだと思うが。
「中身が詰まった」ことでどのような違いを生みたいのか書かんと答えが出ないな。

106:デフォルトの名無しさん
10/01/27 15:10:42
ステンシル値1の部分に描画した立方体内部に、画像処理を施したいので、面だけで構成された立方体ではなく、中身が詰まったものを描画したいのです。

107:デフォルトの名無しさん
10/01/27 16:02:04
中身が詰まった物じゃなくて、断面が描きたいってこと?
URLリンク(www.sgi.com)
のsimplecapみたいな。もしそうなら
ステンシルテストのキャッピング(赤本5版日本語だと456頁)って手法かな

108:デフォルトの名無しさん
10/01/28 00:40:36
中身が詰まってるって言えばやっぱりvoxelでしょう。
URLリンク(artis.imag.fr)
のサイトを参考にしてvoxelレンダリングに挑戦してみたら?

OpenSceneGraphのvolume rendering機能の方が簡単かもしれんが
レンダリング可能なサイズが小さいかも。

109:デフォルトの名無しさん
10/01/28 11:03:46
glslってファイル分割できないの?

110:デフォルトの名無しさん
10/01/28 11:14:56
できるよ

111:デフォルトの名無しさん
10/01/28 17:59:07
ステンシルバッファのステンシル値の配列はこれで確保されてるのでしょうか?

// ステンシル値格納用配列
buf_stencil = new int[xsize*ysize];
for(int i=0; i<xsize*ysize; i++){
buf_stencil[i] = 0;
}

glReadPixels(0, 0, xsize, ysize, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, buf_stencil);

//もしステンシル値1のときは・・・
if( buf_stencil[xsize*(ysize-y-1) + x]==1){ /*ステンシル値をチェック*/

112:91
10/01/28 20:31:27
>>104
できました!ありがとうございます!

あと、画像2枚うpしてますが、2枚の画像を2つの球体に
別々に表示する方法がわかりません・・・
分かる方おられないでしょうか><;

113:デフォルトの名無しさん
10/01/28 20:56:19
>>111
よくわからんけどUNSIGNED_BYTEなのにint[ ] でいいの?
あとステンシルをCPUに持ってくるって、どういうことする場合なのか興味ある

114:デフォルトの名無しさん
10/01/28 22:55:14
113番さん、ご指摘ありがとうございます!!
UNSIGNED_INTで値が読み込めました。

なぜこのような処理をするかというと、ステンシル値1の部分で、CVの関数を使って画像処理を行い、
またGL(ARToolKit)に座標変換させるためです。

115:デフォルトの名無しさん
10/01/28 23:08:02
読み込みをuintにするよりは配列側をbyteにしたほうがいいと思う。ステンシルは256段階だからね。

116:デフォルトの名無しさん
10/01/28 23:52:50
いや、ステンシルが何ビットかは、ピクセルフォーマットによるでしょ・・・。
まぁ8ビットだろうけどw

117:デフォルトの名無しさん
10/01/29 00:06:21
ステンシルが8ビットより多いのってあったっけ?

118:デフォルトの名無しさん
10/01/29 16:55:40
実質1bitしか使ってない気がする

119:デフォルトの名無しさん
10/01/30 06:56:05
C, C++ベースでファイル選択のダイアログやスライダ、プログレスバー程度をGLUTと同時に使える
GUIツールキットはありますか?
GLUIはすでに使用していますが、少し物足りませんでした。

120:デフォルトの名無しさん
10/02/02 06:25:34
― 他社がCellと同コンセプトのもので違うものをつくっても、つながれば問題ない、SCEIさんとしてはOKということですか。

久夛良木 Cellとは違う発想でコンテンツサーバとして存在できるようなアーキテクチャを、他社が開発したとして、
そのプロセッサとCellのプロセッサの中でいろんなプロトコルスタックができますから、レイヤをビシッと決めてやればつながる。
ですから、最終的には国際規格にもっていく話になると思いますよ。

― どういうレイヤで入ってくる企業があっても問題はない?

久夛良木 最終的にはJavaということになるでしょう。
超レガシーで、携帯電話でも全部溶けてしまうような話になるかもしれない。DirectXみたいなのは最悪なんですね。

― どこらへんがですか?

久夛良木 もともとレガシーなものを垂直にたたいたら早いというものでしょ。あれは。

― 当たり前の話ですよね。

久夛良木 論外ですね。互換性もないし。
URLリンク(ascii.jp)


121:デフォルトの名無しさん
10/02/04 00:20:44
こんにちは、質問してよろしいですか。
メモリ上に用意したビットマップから、動的にテクスチャを生成しようと
考えてます。そこでglDrawPixelsとglCopyTexSubImage2Dを使ってみました。
その際、ビットマップの大きさがウインドウの大きさ以上になる部分が、
テクスチャに読み込まれないという問題があるのですが、どのように解決
できますか。

以下に、ソースを簡単に。余計なコードも多そうですが。
GLubyte map[WIDTH * HEIGHT * 3];
void display(void)
GLint viewport[4];

glGetIntegerv(GL_VIEWPORT, viewport); // Viewポートの保存
glViewport(0, 0, WIDTH, HEIGHT); // Viewポートをテクスチャにあわせる

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glDisable(GL_TEXTURE_2D); // テクスチャOFF
glDrawPixels(WIDTH, HEIGHT, GL_RGB, GL_UNSIGNED_BYTE, map);
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, WIDTH, HEIGHT);

glViewport(viewport[0], viewport[1], viewport[2], viewport[3]); // Viewポートの復元

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glEnable(GL_TEXTURE_2D); // テクスチャON
glBegin(GL_QUADS); { テクスチャの書き込み } glEnd();
glutSwapBuffers();

122:デフォルトの名無しさん
10/02/04 00:24:23
DrawせずglTexImage2Dを使えばいいのでは

123:デフォルトの名無しさん
10/02/04 00:44:58
できました、ありがとうございます!
glTexImage2Dを使っちゃっても、普通に速いんですね。

124:デフォルトの名無しさん
10/02/04 05:28:58
むしろglDrawPixelsの方が遅いよ

125:デフォルトの名無しさん
10/02/04 22:27:51
Cn:カラーバッファ、Dn:デプスバッファ、Sn:ステンシルバッファとします。

1.C1,D1,Sxのバッファ状態から、
2.ステンシルマスクを作成し(カラーバッファ未使用)→Cx、D2、S2
3.C1,D1,S2のバッファ状態にもっていく
これを繰り返し行いたく、
A案
1後:FBOへ切り替え
2後:S2をglReadPixels()でCPUメモリへ退避
FBOからデフォルトへ戻す
S2をglDrawPixels()で復帰
B案
1後:D1をglReadPixels()でCPUメモリへ退避
2後:D1をglDrawPixels()で復帰
を試しましたが、どちらもglReadPixels()で遅いです。
(A案の方が、サイズが小さい分少しだけ速いようですが)
※PBOでglReadPixels(),glDrawPixels()してもほとんど変わらず
デプスバッファかステンシルバッファを高速に退避&復帰させる
にはどうすべきでしょうか?
#赤本には、
#glCopyPixels()をXORで使用するとGPU内で画像交換できる
#とか描かれていますが、どうしていいのかのか、また、
#上記のケースで使用できるのかもわかりませんでした。
もしくは、デプスバッファだけを一時的に切り替えて、2が行えるといいのですが
よろしくお願いします。

126:デフォルトの名無しさん
10/02/05 05:40:11
A,B案ともよくわかりませんが、XORでGPU内で画像交換ってのはよくあるXOR交換のことかと
Wikipedia項目リンク交換アルゴリズム
glCopyPixelsでやったことはないですが

127:デフォルトの名無しさん
10/02/07 00:54:39
OpenGLでコントローラを使おうとしているのですが、

printf("%d\r\n",js.lX);
で一応、初期値の -8 とプリントされているのですが、
動かしても変動がありません。どうも倒しながらキーボードを入力すると数値が変動するようです。

現在はキーボード入力で入力したときだけOpenGLが再描画されるのですが
これをJoystickを倒した時に再描画されるようにするにはどうすればよいのでしょうか?

switch (key) {

case 'd':
{
Point NextPos( PosX+0.2, PosY );
if( !ColCheck( NextPos ) )PosX +=0.2;
glutPostRedisplay();
}
ソースはこんな感じになっています。キーボード入力時のみの再描画ではなく、常に?描画するにはどうすればよいのですか?
初心者ですみません。書き込んでいて何を言ってるのかわからなくなってきました。


128:デフォルトの名無しさん
10/02/07 01:04:22
glutPostRedisplay();
これをswitchの外に置くだけじゃないのか

129:デフォルトの名無しさん
10/02/07 01:11:15
外に置いてみました。
ものすごい速度で再描画されています。
どうしたものでしょう、

130:デフォルトの名無しさん
10/02/07 01:33:05
sleepしてみました。

Joystick  extern DIJOYSTATE2 js;を外部変数としていて

if( FAILED( hr = g_pJoystick->GetDeviceState( sizeof(DIJOYSTATE2),&js) ) )。
return hr; // The device should have been acquired during the Poll()

//ここで実際にゲームコントローラの状態を取得してjsに代入する
とあるのですが
if(js.lX>300){
printf("右");
}
で実行すると
error LNK2001: 外部シンボル ""struct DIJOYSTATE2 js" (?js@@3UDIJOYSTATE2@@A)" は未解決です。
error LNK1120: 外部参照 1 が未解決です。
とエラーが出てしまいます。これはどういう意味なのでしょうか??

131:デフォルトの名無しさん
10/02/07 01:53:01
そのメッセージの通りだと思う

132:デフォルトの名無しさん
10/02/08 09:13:16
取り合えずOpenGLとジョイスティックは切り離して考えたほうがいい。

133:デフォルトの名無しさん
10/02/08 09:58:39
使ったことないけどglutJoystickFunc()でとか

134:デフォルトの名無しさん
10/02/08 13:43:56
ゲーム以外の目的で企業がOpenGL使う場合、
glutって使われてるの?


135:デフォルトの名無しさん
10/02/08 15:26:31
使ったほうがいいときは使ってる

136:デフォルトの名無しさん
10/02/08 22:05:10
使うか使わないかなら、使うこともあるんじゃないの。
GLUTで勉強してればいいのかなとか心配なら、そんなこと気にする必要ない。
どんなライブラリでも使えるようになればいい。

137:デフォルトの名無しさん
10/02/12 01:16:02
ありがとう

教授にglutやっとけば問題ないといわれたんだが、
その人がちょっと古すぎる人なので今でも通用するか不安だったんだ


138:デフォルトの名無しさん
10/02/12 01:29:12
UIにQt使いたいんだけど、QtでもGLUT使える?

139:デフォルトの名無しさん
10/02/12 01:54:59
QtでGLUT使う意味がわからん。普通にQtでOpenGL使えるだろ

140:デフォルトの名無しさん
10/02/12 02:57:04
なぜ使いたいのかから説明しないといけないのか
めんどいな

141:デフォルトの名無しさん
10/02/12 03:21:10
情弱w

142:デフォルトの名無しさん
10/02/12 03:24:09
情強乙

143:デフォルトの名無しさん
10/02/12 15:03:15
>>137
床井先生・・・(:ω:)

144:デフォルトの名無しさん
10/02/12 17:35:48
GLUT使ってないシェーダの本出してください

145:デフォルトの名無しさん
10/02/12 18:30:42
GLUTは単にWindowのラッパだからシェーダは関係ないんじゃね?

146:デフォルトの名無しさん
10/02/12 19:52:31
俺QtでOpenGL使ってるけど快適だよ。
glutはさすがに時代遅れだろう。


147:デフォルトの名無しさん
10/02/12 19:53:59
Glutの描画関数使っててattribute変数とか使ってなくてクソだと思う。
そもそも、gl_ModelViewMatrixとかの組み込み変数は廃止予定なんだからダメだろ。

148:デフォルトの名無しさん
10/02/12 20:16:50
ちょっとした調査プログラムとかを超短時間で作りたいとかの場合は今でもGLUTが便利かな
glutSolidTeapot使いたいしw

149:デフォルトの名無しさん
10/02/12 20:33:11
QGL良さげだなぁ。
でもこれだけのためにQtランタイム要求するのはちょっと。

150:デフォルトの名無しさん
10/02/12 23:23:14
glutはglutSolidStanfordBunnyも設けるべきだったよね

151:デフォルトの名無しさん
10/02/12 23:33:01
import wx.glcanvas でぐぐる
wxpython + pyopengl 入れるだけ pydev eclipse でも動かせる

マック環境でインスコ簡単すぎて泣ける
gttkglext 入れるの難しすぎる・・・orz

152:デフォルトの名無しさん
10/02/13 02:30:53
漏れにとって GTK は遠い過去
現在は wxWidgets
未来は Qt

153:デフォルトの名無しさん
10/02/13 03:10:51
こっちを向いてよハニー

154:デフォルトの名無しさん
10/02/13 11:17:03
URLリンク(d.hatena.ne.jp)

gui ライブラリの取捨選択に正解なんてないと
思う結局何かしらの長所もあれば短所もあるし
どれが一番良いかは platform 次第の部分も大きいし・・・

いまから eclise, netbeans みたいなかんじに
普及させるとかは難しいだろうし

マルチプラットフォームは java 系統はよくできてると
思う。日本語入力とか難があるとかそういうのもあるし

ノルウェーのOpera Software ASAは11日、独自エンジンを搭載したWebブラウザー「Opera」v10.50のベータ版を公開した。
URLリンク(www.forest.impress.co.jp)

155:デフォルトの名無しさん
10/02/14 00:58:51
glut使用。
デフォルトでは、表示される範囲ってx,y,z=[-1,1],[-1,1],[-1,1]だけど、そこに[0,100],[0,100],[0,100]の範囲にある図形を描きたい。
方法はいくつか思いついたけど、どれが可読性(よく見かける、ややこしくない)/利便性(めんどくさくない、タイピングや考える手間が少ない)/速度(無駄な計算が少ない)などの面でバランスがとれているのはどれだろうか?

1. 図形の各々の座標をx=x/50 - 1, y=y/50 - 1, z=z/50 - 1とし、[-1,1]の範囲に収める
2. GL_MODELVIEWマトリックスをいじる。glScaled(1.0/50, 1.0/50, 1.0/50);glTranslated(-50, -50, -50);
3. GL_PROJECTIONマトリックスをいじる。glOrtho(0, 100, 0, 100, 0, 100);

なんとなく、3がベストな気がするが、例えばそれに拡大・縮小機能を付けるとき、2でやっていればglScaledで楽に変えられる。
GL_PROJECTIONにglScaledかけても結果は同じかもしれないけど、それをやってるサンプルを見たことがないけどなんでかなぁ。

156:デフォルトの名無しさん
10/02/14 01:02:54
投影とモデル変換は区別しとかないと、モデル数が増えた時にこんがらがるよ。

157:デフォルトの名無しさん
10/02/14 02:24:25
>>156
概念的な違いはあっても、表示のされ方は同じようなので、どう考えればいいのか分からんのです。

実際にものの大きさを変えたり動かしたりならモデル変換で、
見た目の上での問題で、ズームなり移動なりしてるなら投射と考えていいのかしら。

例えばGoogle mapみたいにマウスでつかんで引っ張って動かすみたいなインタフェースの場合、
あれは地図を動かしてると考えるのか、視点が変わってると考えるのかどっちなんだ?

あと、glRotateやglTranslateを投射に使うのはやめた方がいいのかなぁ?

158:デフォルトの名無しさん
10/02/14 03:13:05
モデリングソフトだと座標の単位を設定してモデルを作る。
だからその単位に合わせたカメラを作ればいいんじゃない。
現実と同じように考えればわかりやすい。
数個の図形を表示するだけなら、好きにすればいいと思う。

159:デフォルトの名無しさん
10/02/14 05:55:22
>>155
3。投影方法はGL_PROJECTIONへ
結果が変わらないからどっちでもいい場合もあるが、結果が変わる時に困る。
法線/ライト関係や、頂点シェーダー使う場合とか
>>157
地図(MODEL)を動かすのとカメラ(VIEW)を動かすのは、ライトがあると結果が変わってくる
どちらも投影ではないのでMODELVIEWマトリックスを弄ることになる

160:デフォルトの名無しさん
10/02/14 12:11:48
>>158-159
ありがとうございます。

なんとなく分かったような分からないような……
MODELVIEW行列でカメラを、元データの座標系のまんま描いたときに全体像が写る位置に移動させて、
投影する範囲をPROJECTION行列で設定するのがいいっぽいですね。

拡大・縮小は、MODELVIEWのスケールをいじっても、PROJECTIONの視野の範囲をいじってもどっちでもできそうです。
できればPROJECTIONでやってしまいたい感はあるのですが、回転動作も実装しないといけないかもしれないのです。

カメラ位置固定でカメラの首を振れば対応できる範囲じゃなくて、裏側も見られるくらいに回したいのですが、それは投射じゃないのでMODELVIEWになるのですね。
そして、そういうことするなら、いっそのことMODELVIEWで固めてしまいたい感じがします。

161:デフォルトの名無しさん
10/02/14 13:12:28
カメラの位置、カメラの向く方向、カメラの傾き(ロール)これらはVIEWマトリックスなのでMODELVIEW
拡大縮小がカメラのズームならPROJECTION

普通はGL_PROJECTIONは(glLoadIdentityしたあと)gluPerspective/(glFrustum)/glOrthoのどれか1行書くだけでいい

162:デフォルトの名無しさん
10/02/14 17:59:16
なるほど。両方をいっしょに扱うってのはよくないのですね。

163:デフォルトの名無しさん
10/02/14 20:28:15
>>161
>>カメラの位置、カメラの向く方向、カメラの傾き(ロール)これらはVIEWマトリックスなのでMODELVIEW

gluLookAt は PROJECTION で設定するのがいいと思うのだが、どうなんでしょう?

164:デフォルトの名無しさん
10/02/14 20:33:14
LookAtもModelviewでいいよ。

165:デフォルトの名無しさん
10/02/18 07:12:01
GLSLって実行時にコンパイルするしかないの?

166:デフォルトの名無しさん
10/02/18 10:44:53
んなわきゃない

167:デフォルトの名無しさん
10/02/18 11:34:53
GLSLは実行時コンパイルだろ

168:デフォルトの名無しさん
10/02/18 12:12:19
んなわきゃない

169:デフォルトの名無しさん
10/02/18 22:32:15
んなわきゃないしか言えないの?

170:デフォルトの名無しさん
10/02/18 22:40:33
ってことは
シェーダのソースは丸見えになるということなんですね。

171:デフォルトの名無しさん
10/02/18 23:57:21
独自に適当な暗号化でもしておけばいい。

172:デフォルトの名無しさん
10/02/19 02:30:35
一応、Cのコード内に埋め込むことはできる。

173:デフォルトの名無しさん
10/02/19 11:09:59
glShaderSource() が呼び出されるときにパラメータを覗けばソースを見ることができる。

174:デフォルトの名無しさん
10/02/20 15:27:16
GLのシェーダーが実行時にコンパイルと言うのは
事前にシェーダーバイナリを使えたとしても、
それはドライバ会社のシェーダーコンパイラ依存があるからって事じゃね?
(GLって確かシェーダーバイナリの仕様まで決めてないかと)

つまり自分の環境しか意識しないのであれば、事前にシェーダーバイナリ作って
プログラムに埋め込むなり、別バイナリとしておくなりしておけば良い
(これが、言葉的に実行時コンパイルしかできない訳ない、になる?)

175:デフォルトの名無しさん
10/02/20 20:38:22
OpenGL ES 2.0 の話だったの?

176:デフォルトの名無しさん
10/02/25 00:27:30
glTexSumImageをUNSIGNED_SHORT_5_5_5_1でやるとやたらに遅い。
UNSIGNED_SHORT_5_6_5だとアホみたいに早いのに・・・。
透過色の処理はRGB5551, RGB565のどちらの場合でも切ってるのに、
何が効いてるんだよ

177:デフォルトの名無しさん
10/02/25 08:16:53
internalformatを何にしてるか知らんけど、変換が遅いだけじゃない?
ドライバやグラボ依存だと思われる

178:デフォルトの名無しさん
10/02/26 22:01:56
すみません、凄く抽象的な質問なのですが
バッファをフラッシュした際に落ちるのはどういった原因が考えられますでしょうか?
ウィンドウのサイズを変更した時、バッファをフラッシュするところで落ちてしまいます。

179:デフォルトの名無しさん
10/02/27 10:35:52
落ちる前にglGetErrorとか使ってみたら

180:デフォルトの名無しさん
10/02/27 12:00:15
>>179
ありがとうございます。早速今晩にでも試してみます。

181:デフォルトの名無しさん
10/02/28 18:52:15
ES2.0の話ですが、誰か頂点属性に半精度浮動少数点を使った事ある人いますか?
(拡張でHALF_FLOATがサポートされてるのは確認)

質問があるんですけど、(通常のGLでも意味が同じならOKです)
頂点配列でVBOを作って、それで頂点属性を指定する場合、
当然頂点配列もHalfFloat部分は、16bitにしなければならないと思いますが
通常のC++では16btiの浮動少数点型は有りませんよね?

つまり、通常の単精度floatを、半精度に変換するルーチンをかませながら
float -> HalfFloat と代入しながら頂点配列を操作する感じなんですかね?

で更にシェーダー側の質問ですが、
単精度のHalfFlaotで受け取る頂点属性は何か特別な宣言がいりますか?

例えば
attribute lowp vec2 TexCoord;
とか、精度修飾子も低い指定が必須ですか?それとも無関係?

それからシェーダー内のHalfFloat属性の変数は、計算に注意点は何かありますか?

色々と細かい質問ですがよろしくお願いします。

182:デフォルトの名無しさん
10/02/28 20:23:19
GLSLの質問はこちらでいいのでしょうか?
シェーダプログラムを複数作成するプログラムを組んでいるのですが、
現在使用しているシェーダプログラムの識別子を返すような関数はありますでしょうか?
例えば、

glUseProgram(1);

がどこかで呼ばれた後、他の場所で"1"の値を取得したいのですが・・・。
glIsProgramは識別子が分かってないとダメみたいですし・・・。
もしかすると、プログラムを複数作成してる時点でおかしいのかもしれないのですが、
どなたかご教示お願いします。

183:デフォルトの名無しさん
10/02/28 20:35:34
>>182
考え方が逆

glCreateProgram() の戻り値がシェーダーもアタッチされてる識別子で、自分で制御しなきゃいけないでしょ

つまり

GLuint programID;

programID = glCreateProgram();

glUseProgram( programID );

てな感じで、変数(構造体なりクラスなりのメンバとか)として
今セットしてるプログラムを制御しなきゃ駄目


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

4331日前に更新/174 KB
担当:undef