トップページ⇒tech
1001コメント275KB

OpenGLスレ Part4

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
マルチプラットフォームなグラフィックAPIそれがOpenGL!
質問、雑談何でもいいから書き込め!

- 前スレ -
OpenGLスレ Part 3
http://pc5.2ch.net/test/read.cgi/tech/1067529308/

- 関連サイト -
http://www.opengl.org/
http://www.mesa3d.org/

http://developer.nvidia.com/
http://www.ati.com/developer/
http://developer.3dlabs.com/
0153デフォルトの名無しさんNGNG
特定の物体が陰になるように高原と物体の間に別の物体を置く
0154デフォルトの名無しさんNGNG
あったりめーじゃんよー
0155 ◆Z0vd5w812U NGNG
>>152
特定の物体をレンダリングする直前でglDisable()。
0156デフォルトの名無しさんNGNG
>152
・特定の物体を描画する前にLIGHTINGをDisable
・特定の物体を描画する前にLIGHT0〜7をDisable
・特定の物体のDiffuse,Specularを(0,0,0,1)
・特定の物体のNormalを(0,0,0)
どれでも好きなやり方でどうぞ。
0157デフォルトの名無しさんNGNG
>>156
上からお勧め順に並べるとは、貴方はとても親切な2ちゃんねらでつね。

ときに、

>・特定の物体のNormalを(0,0,0)

他はともかく、これはちと流儀に反する希ガス。
法線の正規化有効にしてた場合ってどうなるんだろ。
実装依存?
なんかエラー積まれてスルー?
0158デフォルトの名無しさんNGNG
現代風にやるなら
・特定の物体のシェーダープログラムを差し替える
かな。
0159デフォルトの名無しさんNGNG
ポリゴンの頂点の法線ベクトルの平均を取る
→正規化
→ウマー
0160152NGNG
>>155 >>156
特定の物体を描画する前にLIGHTINGをDisableでできましたー!
ありがとうございますー!!m(_ _)m
0161522NGNG
gl_kanjiを使おうとしているのですが
これはいったいどこの部分にSDLを使っているのでしょうか??
ソースを見た限りではウインドウ表示ぐらいしかしていないような…。
ご存知の方いませんか??
というか、SDLがどういうライブラリなのかいまいち分かっていないです…ごみんなさい。
0162デフォルトの名無しさんNGNG
SDLを勉強して出直してこい
0163デフォルトの名無しさんNGNG
>>161
http://pc5.2ch.net/test/read.cgi/gamedev/1005469181/
こっちで聞いたほうが良いかも
0164名前は開発中のものです。NGNG
gluProjectを用いて3次元物体のウインドウ座標を取得して
それに2次元の文字を追従させているのですが、
物体を見ている状態から視点を丁度左右に180度回転すると(つまり背後に)
2次元文字がもうひとつ現れます…。
これは何故なのでしょうか?
0165デフォルトの名無しさんNGNG
>>164
ウィンドウ座標が同じになるから。
0166名前は開発中のものです。NGNG
もーちょっと詳しく教えてもらえないでしょうか…m(_ _)m
0167デフォルトの名無しさんNGNG
          ...,、 -  、
      ,、 '  ヾ 、    丶,、 -、
     /    ヽ ヽ  \\:::::ゝ
 /ヽ/   i  i    ヽ .__.ヽ ヽ::::ヽ
 ヽ:::::l i.  l  ト  ヽ  ヽ .___..ヽ 丶::ゝ
 r:::::イ/ l  l.  i ヽ  \ \/ノノハ  ヽ
 l:/ /l l.  l  i  ヽ'"´__ヽ_ヽリ }. ',  ',
 'l. i ト l  レ'__    '"i:::::i゙〉l^ヾ  |.i. l    ____________
. l l lミ l /r'!:::ヽ    '‐┘ .} /  i l l  /参考書読みましょう。
  l l l.ヾlヽ ゝヾ:ノ   ,     !'"   i i/ i< その程度自分でやりましょう。
  iハ l  (.´ヽ     _   ./    ,' ,' '  | 脳味噌ありますか?
   |l. l  ` ''丶  .. __  イ         |無いんですか?
   ヾ!        l.   ├ァ 、        \それならプログラミング辞めましょうよ。
          /ノ!   /  ` ‐- 、      ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
         / ヾ_   /     ,,;'' /:i
        /,,  ',. `  /    ,,;'''/:.:.i
0168名前は開発中のものです。NGNG
>>167
オタク氏ね
0169名前は開発中のものです。NGNG
物体の可視、不可視を判定する方法知ってる人いない?
0170デフォルトの名無しさんNGNG
>>166
GLの座標系は+yが画面上方向、Window座標系は+yが画面下方向。
後は分かるよな?
0171デフォルトの名無しさんNGNG
>>170
 口を挟むようでなんだが、座標系は関係無いんじゃないか?
0172170NGNG
>>171
あ、全然違う話と勘違いしてた。ありがとう。

元の話題のほうは、視点を矢印、物体を○で書くと

  →    ○
  ←    ○

のどちらだろうと3Dから2Dに変換した時の座標は同じ位置だから、
というだけじゃないの?
0173デフォルトの名無しさんNGNG
>>166
gluProjectの中の人が何をやってるか、よく考えてみ。
もしそういう数学が苦手ならOpenGL使うのはやめたほうがいいよ。
0174デフォルトの名無しさんNGNG
分かってる奴のアドバイスと
自分でも良く分かってないけど口出ししたいだけのアドバイスには
明確な差があるな
0175デフォルトの名無しさんNGNG
gluはmesaのソースコードがあるから、参考にしてみ
0176デフォルトの名無しさんNGNG
>>174
いいこと言った。

漏れも、解ってないのに口出ししたい衝動に駆られることがある。気をつけないと。
0177デフォルトの名無しさんNGNG
そして一人もいなくなる
0178デフォルトの名無しさんNGNG
OpenGLってJava3Dみたいな、シーンビルドはないのかな?
クラスライブラリじゃないと、面倒で(汗
0179デフォルトの名無しさんNGNG
OpenSG
http://www.opensg.org/gallery.EN.html
0180デフォルトの名無しさんNGNG
>>179
OpenSGって、OpenGLやOpenALみたいな規格ではないのね。
0181デフォルトの名無しさんNGNG
空間内に置いた物体をtranslateやrotateした後の
座標値を取得する方法ってありますかね?
0182デフォルトの名無しさんNGNG
>>181
手計算
0183デフォルトの名無しさんNGNG
>>181
自分で空間内においたんなら、座標の値くらいはわかってそうなもんだが。
0184デフォルトの名無しさんNGNG
>>181
カレントマトリックスの12,13,14,15(いわゆる、W成分)じゃないの?
0185デフォルトの名無しさんNGNG
かれんとまとりっくす?
0186 ◆Z0vd5w812U NGNG
>>181
gluProject()。自分で演算する場合とどれくらい性能差があるかは知らない。
0187デフォルトの名無しさんNGNG
widestudioでopelglに挑戦してみようと思い
色々サンプルをいじってみたりしてるんですが
今ひとつ上手く行きません。

誰かwidestudio使ってる方居られますか?
なんかwidestudioのマニュアルopenglの説明が少ない気が、、orz
0188 ◆Z0vd5w812U NGNG
>>187
「今ひとつ」というのが何を意味するのか、はっきりさせないと回答もできない。
もっともオレはwidestudioは使ったことないが、ググるだけでサンプルソースが出てくる。それでは不足なのか?
0189デフォルトの名無しさんNGNG
>>187
WideStudio の文句は WideStudio のスレで言った方がいいんじゃないですか
0190デフォルトの名無しさんNGNG
SDL+OpenGLでやってるんですが、
ShadeやLightwave等のモデリングしたファイルを入力して画面に表示したいのです。
これらをOpenGLで使えるようにするライブラリ、APIはありますか?
自分で解析しなければいけませんか?
0191デフォルトの名無しさんNGNG
>>186
それって帰ってくるのは空間の座標じゃなくウインドウ座標じゃないの?
0192 ◆Z0vd5w812U NGNG
>>191
プロジェクション行列に単位行列をつっこめばいいと思う。
自分ではgluProject()を使わないから確証ないが。

>>190
どんなツールの出力だろうと、自前で解析する必要がある。
OpenGLは頂点を指定してポリゴンを描画する以上のことはできない。
しかし探せばLWOその他のファイルを読み込んでくれるライブラリはある。
0193190NGNG
>>192
レスありがとうございます。
さっと探してみたところ、DXFファイルから頂点情報などを読み込めそうです。
ttp://hp.vector.co.jp/authors/VA020045/dxf/DXFR12.html
0194integNGNG
>>190
ディ・ストーム社サイトでLW用ライブラリが配布されてる
0195デフォルトの名無しさんNGNG
>>192
ワールド座標を取得するのに、なんで gluProject() が出てくるんだ?
ちゃんと赤本読んでる?
0196 ◆Z0vd5w812U NGNG
>>195
trans/rotate後の座標位置が欲しいんだろ?gluProject()で計算できるでしょ。
と思ったが、Mesaのソース読んだら、正規化してるしviewport値での変換もあるのか。
自分で行列演算するのが一番だったか。うん。
赤本は久しく読んでないな。ネット検索ばかりだ。
0197184NGNG
>>196
それをやると、こんな感じか?
想像で書いてるんで、間違ってたらごめんなさい。

glPushMatrix(); {
glLoadIdentity()
glTranslatef(trans_x, trans_y, trans_z);
glRotatef(rot_z, 0,0,1)
glRotatef(rot_y, 0,1,0)
glRotatef(rot_x, 1,0,0)
glGetFloatv(GL_MODELVIEW_MATRIX, (GLfloat *)current_matrix)
} glPopMatrix();

move_x = current_matrix[12];
move_y = current_matrix[13];
move_z = current_matrix[14];
move_w = current_matrix[15];
0198 ◆Z0vd5w812U NGNG
>>197
それだと、元の点が原点以外だとずれないか?
0199デフォルトの名無しさんNGNG
LinuxZaurusでKlimt使って遊んでる方いらっしゃいます?
どうも所々で挙動不信な処理があるので情報交換できたら嬉しいのですが・・・
http://studierstube.org/klimt/index.php
0200デフォルトの名無しさんNGNG
またニッチなものをー!

素直にモバ板逝った方がよかったりしない?
0201199NGNG
Linux板のZaurus開発スレでウダウダいってるのも自分なんですが^^;
OpenGLスレなら情報持ってる人居るかなと思ってきてみました…
やっぱニッチですよねぇw
0202デフォルトの名無しさんNGNG
ニッチ(隙間)というよりは、荒野という感じが。
0203デフォルトの名無しさんNGNG
荒野を開発して町を作ろう
0204デフォルトの名無しさんNGNG
ここは地の果て流されて、漏れ


神の皆様、教えてくださいませ。
赤本や青本の内容は、参考書引き引きなんとかなるのですが、
ARBついちまってる拡張機能について、日本語で解説してるよな
サイトはないものでしょうか。

nVidiaのNVSDKの中をピーピー言いながら覗いてみたり、
読めない英文を唸りながら読んでS3TC圧縮テクスチャ展開したり
してるんだけど、なんといっても拡張機能どもは関数が分散してて
一機能一関数ってわけではない場合も多いみたいだし、
山ほどある拡張関数の依存関係やパラメータ類を把握するのに
時間がかかって仕方が無いす。

…地道にやるしかない??
0205デフォルトの名無しさんNGNG
>>204
とりあえず緑本を買う。英語くらいでメゲるな。どうせ関数名なんて英語じゃないか。
0206204NGNG
>>205
緑本は既に持ってた…最初の頃は赤本よりもずっと緑本引いてたわ、そういや。
OpenGL以上にXWindowのプログラムがわからなかったから…。

実は拡張機能について、情報がまとまってるのを期待して、
赤本ならぬRedBook買ったりもしましたよ!
挿絵が美麗になってる意外、中身全然変わってねぇのにショックでハゲた。



英語がどうこうよりも、実際には機能の相関が激しく、ある程度勉強が
進んでひとしきり理解してから「あーやっと何とかなった」を繰り返すのも、
趣味でやってるのならともかく、上司にせっつかれながらではハゲが
広がる一方です。とにかく時間食うのがたまらない。

最近はARBのドキュメントよか、NVSDKのソースばっかり漁る様に…
とにかく読まなきゃいけないドキュメント量が多くて大変だよー。
これにメーカー独自拡張が加わった日にはもう始末に終えません。

カブり機能とか、どっちを選べと。
ARBに昇格したといっときながら、うちのカードじゃ独自拡張側しか
対応できてないやぬるぽ、みたいな、みみっちい躓きネタも一杯転がってるし。

みんなはどうしてるんだろ。
0207205NGNG
>>206
> 緑本は既に持ってた…最初の頃は赤本よりもずっと緑本引いてたわ、そういや。
失礼。そっちも緑本だったね。
それじゃなくて The OpenGL Extensions Guide のほうだ。
0208デフォルトの名無しさんNGNG
>>206
最低限の拡張機能を使わない。
もしくはメーカーごとに書く。
0209208NGNG
× 拡張機能を
○ 拡張機能しか

ちなみにDoom3は複数の描画ルーチンを用意してるみたい。
0210デフォルトの名無しさんNGNG
初心者です。
OpenGLをこれから勉強しようと思うんですが、参考になる本または、HPでお勧めを教えて下さい。
よろしく御願いします。m(__)m
0211デフォルトの名無しさんNGNG
>>210
>>3

次の方どうぞ。
0212integNGNG
結構な気概が無いとOpenGLの独習って大変だよね
0213デフォルトの名無しさんNGNG
warata
0214デフォルトの名無しさんNGNG
まさに2chは馬鹿の集(たか)り
0215デフォルトの名無しさんNGNG
>211
レスありがとうございます。
早速参考にさせていただきます。
0216206NGNG
>>207
なんか会話がつながってないなと思ったんだw

…Amazon逝ってきます。
いろいろありがとう。
0217デフォルトの名無しさんNGNG
GLUI リファレンスの日本語ページがあったと思うんだけど・・・
潰れちゃった?見つからないの。
0218デフォルトの名無しさんNGNG
glPolygonStippleみたいなデバイス座標系でのタイル貼りみたいな事を
32x32より大きなイメージで行いたいのですが、
glTexGenとTexture行列でできるのでしょうか?
3Dの面に貼りますが、テクスチャ間隔(REPEATで)は均等で構わないのです。

EYE_PLANEでテクスチャ座標を生成して、
テクスチャ行列のq成分を投影変換行列のZ値計算成分で指定しただけでは
s、tはまだ線形にならないですよね。
テクスチャ行列のs、tもZ値計算成分指定すれば線形になるとは思うけど
この場合のスケール(REPEATにしたいので)はどう考えればいのでしょうか?

自前で座標変換してデバイス座標系の2Dとしてテクスチャマッピングしたほうが早いかしら。



0219デフォルトの名無しさんNGNG
FedoraCore2にglutを以下のページを参考に入れてみたのですが、
ttp://www.wakayama-u.ac.jp/〜tokoi/opengl/libglut.html#2
コンパイルできません。
gcc prog.c -L/usr/X11R6/lib -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm -I 〜/GLUT -L 〜/GLUT
と打つと、
/usr/bin/ld: cannot find -lglut
と帰ってきます。
この足りないものは何処から持ってくれば良いのでしょうか?
0220デフォルトの名無しさんNGNG
>219
glutがみつからんってんだからパス関係じゃない?
ちゃんとインストールは出来たんでしょ?
0221デフォルトの名無しさんNGNG
>>219
$ gcc -I ~/GLUT prog.c -L/usr/X11R6/lib -L ~/GLUT -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm
でどう?
0222 ◆Z0vd5w812U NGNG
拡張機能を使う場合には、
・使わないバージョン
・ATI用
・nVidia用
の3つのルーチンを書いて、機能照会をして切り替えて使う。
メンドクサインダヨ。。。。。
0223デフォルトの名無しさんNGNG
>>222
世の中ATIとnVidiaだけじゃないから、できるだけ共通の拡張機能を使ったほうがいい。
特殊な拡張機能を使うよりは相当する機能をシェーダープログラムで作ったほうが
かえって互換性が高かったりするぞ。まぁ何をやりたいかによるけどな。
0224 ◆Z0vd5w812U NGNG
>>223
現実には、ATIとnVidiaだけを押さえておけば・・と思ってるけど、
実際の市場シェアはどうなってるんだろう。
もちろん、共通の機能拡張だけで済むならそうしたいけどね。
0225デフォルトの名無しさんNGNG
>>224
> 実際の市場シェアはどうなってるんだろう。

ローエンドを含めるとシェア1位はインテル(チップセット内蔵)だったりする。
ハイエンドでは3Dlabsは無視できないかもしれない。
0226デフォルトの名無しさんNGNG
>>224
Intelもよく使われているけど
0227 ◆Z0vd5w812U NGNG
うっかりしてた。Intelチップセットか。
あとで持ってる拡張機能を調べるか。。。
0228219NGNG
221さんありがとうございました。m(__)m
ぶじコンパイルすることできました。
0229 ◆Z0vd5w812U NGNG
IntelのサイトでOpenGL対応状況を調べてみた。
845Gあたりから上はOpenGL1.3対応なんだね。
あちこちのベンダのglGetString(GL_EXTENSIONS)の一覧ってどっかにない?
0230デフォルトの名無しさんNGNG
IntelとSiSとATiとNVIDIA抑えときゃ、たしか7〜8割はオーケー。
0231デフォルトの名無しさんNGNG
旧世代GPU or ローエンドGPUなんぞ容赦無用で切り捨てるのが吉。
0232デフォルトの名無しさんNGNG
ハード任せの雑魚プログラマですか?
0233デフォルトの名無しさんNGNG
>>232
いくら旧世代GPU上でスマートなシェーダを書いたとしても
最新GPUの最先端フィーチャとブルートフォースには 敵 わ な い w
0234デフォルトの名無しさんNGNG
>>232
あ、ていうかハイエンドGPUが変えない貧乏人の方ですか?w
0235デフォルトの名無しさんNGNG
いまだに voodoo3 ですがなにか?
0236デフォルトの名無しさんNGNG
>>230
それでも7,8割なんだ
0237デフォルトの名無しさんNGNG
>>236
> それでも7,8割なんだ

そうだね。みんな自分の環境を普通だと思いがちだけど、できればいろんな環境の人を
思いやる広い心を持ちたいものだね。自戒も込めて。
0238デフォルトの名無しさんNGNG
99.99%に対応していないのなら、OpenGLを使う意義はない。
というか、OpenGLを使っていますと名乗らないでほしい。恥ずかしいから。

余談だが、オープンソースソフトウェアは総てのUNIXプラットフォームで
動作すべき。そうでないなら以下略。
0239デフォルトの名無しさんNGNG
>>238
.NETフレームワーク上のプロジェクトは?
0240デフォルトの名無しさんNGNG
俺は手間がかかっても
それぞれのGPUに合ったパスを作る。
できるだけ書きたい。
そのように努める。

そうすることが自分の経験やユーザーにとってもシヤワセへの道なのではないかと
0241デフォルトの名無しさんNGNG
余談だが、こころが狭い人には恥ずかしがり屋さんが多い。
0242デフォルトの名無しさんNGNG
恥ずかしがりや→前に出て何かやらない→鍛えられることがない→無能→広い世界に出られない→自分の世界で精一杯→心が狭い
ボガードの 強くなければ生きていけない.優しくなければ生きていく資格がないは至極名言。
0243デフォルトの名無しさんNGNG
ええっちゅーね、バンボンGL2.0ベンチこさえって
0244デフォルトの名無しさんNGNG
説教好きな方が多いですね。

100%ソース互換でなくても移植しやすい構造にしておけばいいんじゃねーの?
0245デフォルトの名無しさんNGNG
ハッキンガー

0246デフォルトの名無しさんNGNG
クラッキンガー
0247デフォルトの名無しさんNGNG
ゲキガンガー
0248デフォルトの名無しさんNGNG
描画部分を切り離してたとえOpenGLだろうがDirectXだろうが
そのほかであろうが移植できるようにするのが本当の移植性
0249デフォルトの名無しさんNGNG
自己満足ですか。どうぞ勝手にしやがってくれ。
0250デフォルトの名無しさんNGNG
>>248
最低限、それはやった上での話だろ。
0251デフォルトの名無しさんNGNG
ここはプログラマの倫理の授業スレですか
0252デフォルトの名無しさんNGNG
倫理云々より、合理的かどうかの問題だな。
■ このスレッドは過去ログ倉庫に格納されています