1 :
デフォルトの名無しさん :
02/12/16 05:35
2 :
デフォルトの名無しさん :02/12/16 05:35
3 :
デフォルトの名無しさん :02/12/16 05:50
とりあえず立てました。よろしく
スレ立て乙
8 :
デフォルトの名無しさん :02/12/16 19:34
久しぶりに見に来たら8ゲット!?
>>1 さんおつかれさま〜
ついでにC++&GL初心者の僕の質問にも答えてください
窓(Window)新規作成&マウスとリサイズ関数を持った
簡単な窓生成クラスを作ろうと思ってるんですが
コンパイルしようとすると
display とかmouseとかresizeで渡そうとしてる関数が無いよ〜って返ってくるのです。
表示用クラス{
パブリック:窓作成初期化ルーチン
プロテクテッド:マウス、リサイズ、ディスプレイなどが複数
}
で、初期化しようとしてglutDisplayFunc(プロテクテッドに書いたルーチン)とかで指定しようとすると
no matches converting function...と返ってきてしまいます
どうすれば良いんでしょうToT
クラス名::関数名
とか&クラス名::関数名とかで渡そうとがんばってみましたが…
C++初心者の俺にはよくわからんでしたToT
よろしく御願いしマス
staticにしたら動きました… なんでだろ〜? とりあえず独習C++など引いてみマス
13 :
デフォルトの名無しさん :02/12/18 02:07
wdc
>>12 static だと暗黙の this ポインタが要らないから・・・
みんな開発環境は何? 俺 VC++&GLUT 厨房ですまそ。
VC++&API直叩き
最初はGLUT だったけど、だんだん glX (linux )になりつつ またいしたことシナイから変わんないけど
VC++&SDL windows以外で動作させたことないけど。 パッドで操作できると楽しい。が、操作できる項目を多くすると不便。
最近はじめようかと GCC&GLUT @FreeBSD←学校で標準なんで。 openglってバージョン乱立してるけどオフィシャルはいくつなの?
>>18 最後の一文どういうつもりで書いたのか分からんけど
Linuxでもパッド使えるよ。
21 :
デフォルトの名無しさん :02/12/20 17:41
WGLをモデリングツールやDirectXと絡めてプログラミングさえ出来ればゲーム作りには問題無し。
今さ、openglでゲームみたいなのつくってるんだけど、 3Dオブジェクトのファイルどうしようかと考えてるんだけど、 前はライトウェーブのファイルを読み込んでたんだけど、結構重たい。 なんか、もう少し軽くて汎用性があるフォーマットない? opengl標準フォーマットないから、この辺悩む・・・。
昔VRMLなんてのがあったねえ...(遠い目)
残党が何かやってるらしい
http://www.x3d.org 標準に興味があるなら見ておくといいかも。
まあ、デザイナとの連携が取れないと、実作業に入ったときに
どうしようもなくなるのは明白。それを考えると、
3DStudioMaxから吐き出せるフォーマットのローダーを作るか、
Maxのエクスポータプラグインを書いて独自形式で吐くか、
ぐらいしか思いつかないや。
ゲーム屋さんは後者あるいはミドルウェアを使うのが普通らしい。
それ以外にデータが流通してる気がするのはDirectX方面の
.Xファイルだけど、触ったことないから知らない。
一応Maxからのエクスポータがあったような?
24 :
デフォルトの名無しさん :02/12/23 15:23
OpenGLでライトウェーブのファイルを読みこむにはどうすればいいの? なんかX形式に変換ツールを使って云々とか書いてあったけど、ぜんぜんわかりません。
25 :
名無し@沢村 :02/12/23 15:29
ライトウェーブや3DStudioMaxのフォーマットなんてダサくて使えないよ。 せめてバーチャファイターのチェンリーみたいのがサクサク動かないと…! PCの3Dはダサいから今のところ手を出していない…。
26 :
デフォルトの名無しさん :02/12/23 15:42
>>1 ┌┬┬┬┐
―――┴┴┴┴┴―――――、
. . /  ̄ ̄ ̄//. ̄ ̄| || ̄ ̄ ̄||| ̄ || __________
./ ∧// ∧ ∧| || ||| || /
[/____(゚_//[ ].゚Д゚,,) ||___||| || < こんなのが有りますた
. ||_. * _|_| ̄ ̄ ∪|.|. |ヽ.__|| \__________
. lO|o―o|O゜.|二二 |.| 救済病院 ||
.| ∈口∋ ̄_l__l⌒l_|___|_l⌒l._||
 ̄ ̄`ー' ̄ `ー' `ー' `ー'
http://freeserver.kakiko.com/hiroyuki/
27 :
デフォルトの名無しさん :02/12/23 19:18
DirectX? そんなのだめだ(略
29 :
デフォルトの名無しさん :02/12/24 04:05
>>29 サンプルのなかに入っているOGLViewってやつが
lwo形式を読み出しOpenGLで表示するサンプル。
lwsを読み込むときもそんなに難しくない。
いっしょに入ってるSCN3.pdfを読めばわかるはず。
休みda! がんばって勉強しよう。。
age
33 :
デフォルトの名無しさん :02/12/28 23:07
ageage
34 :
かおりん祭 ◇VqKAORinK6 :02/12/28 23:22
│この度は新スレおめでとうございます。 │お祝いのご祝儀をどうぞ └───v──────────── ノハハヽ ____ 川^▽^)| .寿. | __ ( つ|.=∞=.| | \と___)).| .癶. | ( ,, ̄ ̄ ̄)  ̄ ̄  ̄ ̄ ̄ ̄
ありがたくもらっときます。
36 :
デフォルトの名無しさん :03/01/05 05:22
Windowsで、窓の大きさにかかわらずオブジェクトをウィンドウに 同じ大きさで表示させたいのですが、どうやってやるのでしょう?
glViewport(0, 0, 300, 300); gluPerspective(30.0, 1, 1.0, 10.0); でオブジェクトを同じ大きさに保てました。 んー、でもビューポートはウィンドウの大きさにしたいんですよね。
画面が大きくなるにつれてfovを大きくすればいいんでない? 計算式はどうなるか知らんけど
39 :
レプタリアン教授 ◆Sx0UvVQevE :03/01/05 15:44
デモを作ろうと思うんですが、音楽との同期について詳しいサイト知ってますか?
サイトは知らない 音楽はどうやって鳴らすつもりなの?
41 :
レプタリアン教授 ◆Sx0UvVQevE :03/01/05 16:31
DirectSound。詳しいやり方に関してはやり初めでまだ勉強してないけど。
IDirectSoundBuffer::GetCurrentPositionだけ知っておけば あとはなんとかなると思うよ
43 :
レプタリアン教授 ◆Sx0UvVQevE :03/01/05 16:44
どもです。
>>38 レスありがとうございます。
fov を大きくしたら、物体は小さくなりました。
計算式は… 解りません。
なぜビューポートが大きくなったら、物体も大きく表示されるのでしょう?
いったんビットマップに描画してからウィンドウに描画する方がいいのかな。
SwapBuffer を使わない方法です。
>>44 おまいさんはviewportとprojection matrixの関係を
一度きっちり理解したほうがいいと思うよ。
結局後でハマることになる。
46 :
デフォルトの名無しさん :03/01/07 02:06
今日、赤本と青本とジェムを注文しました。全部で3万越しました。悲しいです。 原書でも読める事は読めるけど、読むのが極端に遅くなるんでジェム以外は泣く泣く和書にしました。
47 :
デフォルトの名無しさん :03/01/07 23:45
glTexImage2D()のinternalFormatとformatの違いがわかりません。 texelのフォーマットとtexture-imageのフォーマットって違いが良くわから無いです。 ディスティネーションとソースみたいなもん?
formatはこっちが渡すデータのフォーマット。
49 :
デフォルトの名無しさん :03/01/08 00:45
やはり、3Dで食って行くには物理学にも精通してないとダメなんでしょうか? ベクトルなら大丈夫なんだけど・・・剛体シミュレータ作れねぇよウワァァァン
50 :
デフォルトの名無しさん :03/01/08 01:24
>>46 あー、赤の和書は訳が悲惨だよ…1版しか見てないけど。
もー何が書いてあるのかすら理解するのに苦しんだよ。英語低レベルでも
原書にしる!
青ってリファレンスでしょ?不要。
51 :
デフォルトの名無しさん :03/01/08 01:46
え〜〜〜〜〜!青本いらないのか・・・赤本和書最悪なのか・・・・・鬱・・鬱 gemsはいいよね??
52 :
デフォルトの名無しさん :03/01/08 01:50
>>51 gemsは玉石混合て感じだね。まぁ全部揃えててもいいとは思うけど。
ところでいま何巻まで出たの?
53 :
デフォルトの名無しさん :03/01/08 01:54
54 :
デフォルトの名無しさん :03/01/08 01:57
英語読めない事もないけど、気力が萎えてるから、gemsも和訳買ったんだよな・・・あ〜英語力がもっとあれば、懐も・・
55 :
デフォルトの名無しさん :03/01/08 02:04
56 :
デフォルトの名無しさん :03/01/08 02:06
57 :
デフォルトの名無しさん :03/01/08 02:12
58 :
デフォルトの名無しさん :03/01/08 02:26
盛り上がっている所、脇から済みませんが。 ビューポートってのは投影先の事で、物体をそこに合わせて投影されるので、 ビューポートが大きくなれば、物体も大きく表示される。 また、ビューポートの大きさがZバッファとカラーバッファの大きさになる。 との解釈でよろしいのですか?
59 :
デフォルトの名無しさん :03/01/08 02:28
??????????????????????????
60 :
デフォルトの名無しさん :03/01/08 06:01
果たして赤本5000円は安いのだろうか…
>>58 バッファのサイズは表示しているウインドウのサイズかと。
ビューポートを変えてもバッファサイズは変わらんです。
63 :
デフォルトの名無しさん :03/01/08 18:15
glBindTexture()を2回実行する意味が良く分からないんですが。
64 :
デフォルトの名無しさん :03/01/08 18:32
あげ
65 :
デフォルトの名無しさん :03/01/08 20:24
あげ
66 :
デフォルトの名無しさん :03/01/08 20:25
67 :
デフォルトの名無しさん :03/01/08 20:31
MFCかよ。MFC専門じゃない本でMFCが登場する時は、間違い無く説明不足で初心者は混乱して理解不能な罠
68 :
デフォルトの名無しさん :03/01/08 20:32
ゲームの方のgemsはいいの?評判いいから注文したんだけど。
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
71 :
デフォルトの名無しさん :03/01/08 21:41
ウワァァァン…買う本は赤本以外全部ダメって事か… ま、まだ21だし、大丈夫、なのかな・・・でも20歳くらいでバリバリ3Dゲーム作ってるヤツもいそう・・
72 :
デフォルトの名無しさん :03/01/08 21:53
>>71 あれ、赤も訳書にしたんじゃなかったっけ?
73 :
デフォルトの名無しさん :03/01/08 21:54
あぅ
キャップでの書き込みは?やっぱりIPとられるの?
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
立ったのかよ
という事は、PFD_DRAW_TO_BITMAP の時はビットマップの大きさが バッファの大きさになりそうですね。 最終的にDIBで扱いたいので、こちらでやります。 サンプルコードではよく、glViewport にウィンドウサイズを渡していますが、 これは単に、ウィンドウサイズに合わせて拡大・縮小表示するためですか? ウィンドウに入りきらない部分が表示されるわけじゃないですよね。 ビューポートをウィンドウの大きさにする必要はない。 ビューポートとクリッピング領域は別物で、クリッピング領域内であれば、 ビューポートの範囲外もちゃんと表示される。 まだ確認用のコードが書けないので予想です。
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
Wi(ry
>(電波) ってのは受信したよってことすか、、?
例の「灰」サイトみたいに 全ての文章がネタで、確信犯で小さいデマやうそを言うならまだしも 自作自演で鯖細くしたり(電波)嘘っぱちのヒット数言ったり 詐欺やってる内はいきてるカチないね。 まぁ百パーセント元からデマのガセだからね>2ch
2CH崩壊か!!
どうせ敗訴しても400万円を2ちゃんねらーのみなさんがカンパするんでしょ?
>>894 法律で 警察 裁判所からでないと 公開はしないはず
彡ミミミ、 (; ゚ ∀゚) < 遅ればせながら、腐れさん結婚おめでとうage!!
ヨユーの471ゲッティング!
ありがたくもらっときます。
93 :
デフォルトの名無しさん :03/01/10 18:53
GL2.0ってどうなってるの?予定だともうリリースされてもいいのに。
ひろゆきは大人になりましたとさ・・・
踏み台にされて書き込まれたらどうなるの? 踏み台にされた奴が訴えられる?
せめて暗号化くらいしてから記録するようにしてくれよ。
美学っすか?
qbサーバってどこの板がはいってるの?
956 名前:名無しさん@3周年[sage] 投稿日:03/01/10 23:02 ID:6k38FlYk 彼らの風貌の感想を言ったまでですが。 Web上に公開されている写真の感想を言っても、訴えられるのかな?
のだと下四桁みたいだけどね。 3桁?&まだある、そのサイト?
厨房板の連中はIP丸出しでチョン死ねとかはっきり書いてるなあ。 あいつらかっこいいぜ(ゲラ
1ch.tvからはるばるご苦労様。 でもまずはあっちを賑わすことに専念したほうがいいよ
ラウンジに行けばわかる
105 :
デフォルトの名無しさん :03/01/11 19:05
game gems届いたヨ。誰かが貼ってくれたリンクの先では非難が多かったけど、それはプロの視点から見ての事なんでしょう。 素人のオイラからは宝の山でしたよ。多重積分や画像解析ばっかで物理学なんて高校以来やってないから嬉P。
fusianasan
つまらんよ、そこ。
顔晒したら許します
はぁぁぁ。あと、1週間以内で生理・・・。 何事にもむかついてたまらないっ! 生理前って、ブルーになったり、いらいらしたり。。。 ほんと勘弁してって感じ。
fusianasan
全く正論だね
そうそう sports3 サーバ html 化はいります。
113 :
デフォルトの名無しさん :03/01/13 01:00
あげ
114 :
デフォルトの名無しさん :03/01/13 01:03
gcc3.2, Mesa4.2, glut3.7 でZバッファが使えません(何も描画されない)。 これって仕様でしょか。 BCC では大丈夫だったので文法はあってるみたいなんですけど。
>>114 その程度の情報で回答をもらおうとしているあなたがおかしい、という仕様。
(^^)
う〜厨房です。情報少なくてすんません。 あと何を書けば良いか教えて貰えますでしょうか・・・。
どっかでエラーでてるんでないの。 glコマンド実行ごとにglGetError(だっけ?)して確かめれ。
二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm ようするに上告しても今の制度では100%無駄。
これで完全終了ってことか。
>>118 さん
アドバイスありがとうございます。
コンパイルは通ってしまうんですよね。
と、とりあえず glGetError について調べます・・・。
121 :
デフォルトの名無しさん :03/01/13 22:37
>>120 そんなに知り炊きゃソースと具体的な症状を書けよ。
テスト用にもう1度別のを書いてみたら解決してしまいました。 gluPerspective() の zNear を 0 としてたのがいけなかったようです。 はづかしひから もう しやうですかなんて いひません・・・。
(^^)
124 :
デフォルトの名無しさん :03/01/15 18:41
大3だけど、まだテクスチャ貼れるくらいしかできません。 就職するまでにどれくらい出来るようになってた方がいいですか。
126 :
デフォルトの名無しさん :03/01/16 10:10
無理
とりあえずのレベルがQuake3かよ(w
どこ就職するのにも困らなさそうだな。
うーん、どれくらいかな。Lightwave3Dのファイルを読み込んでボーンとかグリグリ動かせるくらいになればいい?
130 :
デフォルトの名無しさん :03/01/16 19:14
とてもいい。 でも就職作品はゲームとして完成させてるかどうかを見る人の方が多い。と思う。
でもやってるのはWGLなんだよね・・・大抵はD3Dでしょ?
>>131 安請け合いのゲームプログラマならD3Dだね
GLならハイエンドの世界という道もあるからね
じゃあD3Dやれよ。 つーか板違い。
135 :
デフォルトの名無しさん :03/01/16 23:21
134オマエモナ じゃなくて。 まあGLでやりてーならそれもよし。 表示さえできりゃ後は微々たることでしょ。 俺は英語が読めないからGLは駄目だぞい。 じゃ、そゆことで
まあ、OpenGLはできるがD3Dはまったくできません、 なんて言い切っちゃう人には期待できんなあ。
138 :
デフォルトの名無しさん :03/01/17 19:50
青本便利ジャン
139 :
デフォルトの名無しさん :03/01/17 20:59
glTexParameterのミップマップ処理ってさ、「え、マッピング範囲がテクスチャより大きいのにテクスチャを縮小すんの?逆じゃない?」って思った奴いない?
140 :
デフォルトの名無しさん :03/01/17 21:34
GL_NEAREST テクスチャ処理するピクセルの中心に最も近いテクスチャ要素の値を返します 「テクスチャ処理するピクセル」と「テクスチャ要素」って何を指してるんだ・・
141 :
デフォルトの名無しさん :03/01/17 21:42
Returns the value of the texture element that is nearest (in Manhattan distance) to the center of the pixel being textured. 原文。 マンハッタン距離が除かれてる・・これってユークリッド距離と勘違いする奴いるんじゃないのか。
142 :
デフォルトの名無しさん :03/01/20 11:30
143 :
hnhjfcldsa :03/01/20 13:36
tp://leo.nit.ac.jp/~shindo/ …サイバーガールエミちゃん…
>>142 感動的ですらあるな。ソース付いてればある程度は緩和できたと思うが。
2chで良く見るコピぺで
「25歳・昨年まで無職・カジノで儲けた」の
>>142 バージョンキボンヌ
(^^)
よくわかってない頃に
>>142 買いますた。
5分読んで本棚の肥やしになってます。
おい貴様ら! 任意の2点を結ぶ円柱を描く関数作りたいんだけどヒント下さい
円柱をn角柱で近似するとして、 方法1:二点の位置と半径から、n角柱の頂点の位置を計算し、 底面と側面を描く 方法2:XY平面を底面とする高さ1、半径1のn角柱を描くルーチンをつくる。 二点の距離と半径から、Translation/Rotation/Scalingを表す行列を求め、 その行列をGLに施してから最初に作ったルーチンを呼ぶ。
152 :
デフォルトの名無しさん :03/01/29 00:38
最近気が付いたのですが OpenGLプログラミングガイド 第2版 新装版 ISBN4-89471-695-X と私の持っている OpenGLプログラミングガイド 第2版 ISBN4-7952-9719-X はどう違うのでしょうか?
基本的なところは全然変わってないから気にしないでいいんじゃない?
154 :
naganaga :03/01/30 21:55
VRMLのファイルをOpenGLにくみ込むにはどうしたらいいか, 具体的に教えてください.
何がわからないのか、わかりません。
詳しく書かないですいません. wrlのファイルをopenGL上で表す様にしたいのですが ファイルnameを呼び出すだけじゃ駄目なんですよね? なんとなくwrlファイルを読み込むようなプログラムを 書かなくてはいけないのはわかっているのですが, どういう風に書けばいいのかよくわからないのです. もし,よろしかったら教えて下さい.
わざわざどうもすいませんでした. お世話になりました.
159 :
名無しさんの野望 :03/02/11 11:33
opengl32.dllってmcrosoftからでてるopengl1.1のopengl95.exeよりあたらしいの無いの? nvidiaのgeforceなんだけどnvidiaからopengl1.3とかのdllとかあったりするの? 探したけど見つからない このあいだARBつかったプログラムのサンプルあったけど動かなかったよ
>>159 あ、ATI RADEON とかじゃないとARB対応してないのか
161 :
デフォルトの名無しさん :03/02/11 18:28
ARBの関数、青本に載ってないんだけど・・
そりゃARBだからでは・・・
163 :
デフォルトの名無しさん :03/02/11 22:40
164 :
デフォルトの名無しさん :03/02/11 23:44
OpenGLって終わってるってホント? D3Dとどっちがどういう面で優れてるか教えて。あとGLで代表的なゲームも(QUAKE以外)
現状ではD3Dとの相違点がほとんどない Windows以外でも動く(ことができる)というメリットしかない
exportテーブルにARBないとおもったらwglGetProcAddressでアドレスゲットしないといけないのか glMultiTexCoord1fARB= (PFNGLMULTITEXCOORD1FARBPROC)wglGetProcAddress("glMultiTexCoord1fARB"); glMultiTexCoord2fARB= (PFNGLMULTITEXCOORD2FARBPROC)wglGetProcAddress("glMultiTexCoord2fARB"); glMultiTexCoord3fARB= (PFNGLMULTITEXCOORD3FARBPROC)wglGetProcAddress("glMultiTexCoord3fARB"); glMultiTexCoord4fARB= (PFNGLMULTITEXCOORD4FARBPROC)wglGetProcAddress("glMultiTexCoord4fARB"); glActiveTextureARB= (PFNGLACTIVETEXTUREARBPROC)wglGetProcAddress("glActiveTextureARB"); glClientActiveTextureARB= (PFNGLCLIENTACTIVETEXTUREARBPROC)wglGetProcAddress("glClientActiveTextureARB");
168 :
デフォルトの名無しさん :03/02/12 15:52
>>165 >>現状ではD3Dとの相違点がほとんどない
まったく違うだろ、阿呆か?
吉野屋の牛丼とコシヒカリどっちがうまいの?
ってきいてるようなもんだよ。概念が全然違う。
釣れちゃった・・・
171 :
デフォルトの名無しさん :03/02/12 21:42
>>170 =165 イタタ
ま、ゲームしか作れない奴には、D3DもGLも同じにしか見えないんだろうな(プ
173 :
デフォルトの名無しさん :03/02/13 01:24
174 :
デフォルトの名無しさん :03/02/19 20:35
バカっぽい質問で恐縮なんですが、 hoge.cpp (hoge.hをインクルード) hoge.h (中でglu.hとgl.hをインクルード) に対してVisual C++でhoge.cppをコンパイルしようとすると 『error C2086: 'int APIENTRY' : 再定義されました。』 が鬼のように出るのですが、どうすればいいのでしょうか。 g++ hoge.cpp -c では問題なくコンパイルできるのですが。
>>174 なんか俺も似たような現象に出会ったことがあるような・・・
たぶんVC++のバグっぽいんだけど。
まず#include "hoge.h"をコメントアウトしてコンパイルする。
当然エラーがでるわけだが、今度はincludeしてコンパイル。
俺はこれでコンパイルできた記憶がある。
最初に #include <windows.h> でもやればいいんではなかろうか。
うぉんちゅー。
>>176 の方法でうまくいきました。
なんか基本中の基本っぽいですね。どうもありがとー。
178 :
デフォルトの名無しさん :03/02/19 23:42
QUAKE、狂気の国のアリス(American MacGee's Alice)以外にOpenGL使った有名ゲームってある?
ゲームじゃないがポスペV3。 Win版は予想通り撃沈したけど。
SDL使った奴とか mameとか
181 :
デフォルトの名無しさん :03/02/20 04:00
ポスペみたいな糞挙げないでよ。 NEHEの本に、EAはアリスにおいてテクスチャマトリクスの新しい使い方を開発した、とか書いてたけど、 どんなんか知ってる人いる?
>>178 HALF-LIFEとそのMOD Counter-Strikeとか有名じゃないか
俺既存のOpenGLゲームのglVertex3fとかglのFunctionをHookして セルしぇーだーっぽくしたりしたりして遊んでまつ
>>174 APIENTRYの型が#defineされてるヘッダーがincludeされてないから
gl.hのなかの
int APIENTRY gl**
int APIENTRY gl**
でAPIENTRYが何回も定義されたっとVCがおもった
186 :
デフォルトの名無しさん :03/02/22 09:37
和訳青本の1.2はいつ出るんだ?
需要が無いんじゃないか?
188 :
デフォルトの名無しさん :03/02/22 18:08
ARBはともかく、gl*EXT()まで載ってないもんなぁ
翻訳しながらこつこつ覚える
>>184 いまどきOpenGLのゲームでイミディエイトモード使ってるゲームってあるの?
>>191 別のコマンドに置き換えてるという意味では?
193 :
デフォルトの名無しさん :03/02/26 23:33
ステンシルバッファの説明が意味わかんない 単なるテクスチャとはちゃうの?
ステンシルバッファ=特殊用途用Zバッファ
>>193 まさにステンシルなんだけどな。描画したいとこだけ切り抜いた感じって言うの?
>>194 正確すぎ。だけど実装によっては違うのもあるような。
stencil=型板みたいな。
勉強して大体分かったけど、和訳赤本の絶望的な日本語でステンシルバッファを理解出きた奴いるのか? 使用例のキャッピングなんて何が言いたいのか分からなかったよ。
ステンレスバッファって何?
>>197 あー、CADとか使ったことない?ないとイメージ沸きにくいかもNe-
200 :
デフォルトの名無しさん :03/03/01 17:11
アキュムレーション使ったモーションブラーでglAccumのGL_LOAD,G_ACCUM,GL_RETURNを使うが、 その時ノvalueの意味も含めて説明してくれ。
BCCでGLUTを使った際に表示されるコンソールを消したいのですが、 どのようにすればいいのですか?
202 :
デフォルトの名無しさん :03/03/02 23:43
WGLも知らん奴は死ね
>>201 漏れも知りたい。誰かしってるヤシがいたら教えてキボンヌ
>>202 WGLしかできんヤシは氏ね。
GLUTのコンソールって消せるのね。知らなかったよ… で、FAQにVCの例と 「リンクオプションは他のWindowsコンパイラのために同様です。」 って書いてあるけど、これじゃダメなの?
205 :
デフォルトの名無しさん :03/03/03 13:29
消せません おとなしくWGLやれ
206 :
デフォルトの名無しさん :03/03/03 22:28
洋書の参考書でどうしても分からない部分があります。誰か教えて下さい. After you have a valid quadric object, you can use it to draw any number ofshapes, and the same object canbe used to draw disks, cylinders, cones, and spheres. So, you may wonder, if a single quadric can be used to draw any shape and as many of each shape as you want, why would you want to create more than one? And for that matter, if you only need one, couldn't OpenGL just manage that behind the scenes, and not require you to create a quadric object? Well, in truth, you could get away with using a single quadric object, and in some applications, that's perfectly acceptable. But remember that quadric objects are used to store state information about the shapes you want to draw. If you use a single quadric, all shape drawn with it must use the same states, or else you need to change states between shapes. Because state changes aren't free, unless you really do want all your shapes to share the same state variable, it's probably going to be more efficient to create multiple quadrics. クワドリクスオブジェクトが一つで色々な形状を作れるのはおかしい!オブジェクトが一つだけだと形状の状態情報を形状ごとに変える必要があり、 それは自由じゃないから効率が良い(悪いんじゃないの?)! とか言ってる意味が分かりません。このページだけでン時間悩んでます。誰か宜しくお願いします。
207 :
デフォルトの名無しさん :03/03/03 23:02
coplanar って何???
>>201 ,203
mainじゃなくWinMainで始めれば?
>>206 何について論じているのかぐらい書いてくれよ・・・
210 :
デフォルトの名無しさん :03/03/04 02:25
quadricsオブジェクトの生成についての箇所です。
>>201 VC++なら/subsystem:windows
>>205 いい加減なことをほざくなWGLヲタ
>>211 嘘つくな黙れアホコンソールとGLUTは一心同体。
悔しかったらコンソール消すソースコード載せてみろアホ。
コンソールを消す"ソースコード"は無理ですね。
>>212 アホアホいう前に自分でGLUTのソースを変更すればいいじゃん。
>>213 VCならこれでいけると思われ。
#include <GL/glut.h>
#pragma comment(linker,"/subsystem:windows")
#pragma comment(linker,"/entry:mainCRTStartup")
>>215 これ実行すると固まるから気をつけろ。作業中だと泣くことになるぞ。
誰かおせーて・・
GLUquadricObjをshapeごとに持つか、一つを使いまわすか、 どっちが効率がいいのか言ってるのかなぁ? 英語読めないので勘。
以下のプログラムは, gluLookAt() で視点位置を変えながら, glutSolidSphere() で 原点に描いた球を見るプログラムです. 球を描いているはずなのに, ソース中の OK と 書いた部分では球が表示され, NG というところでは半球が表示されたりします. クリッピングされているっぽく見えるのですが, ちゃんと視体積の中に球はあるように 思えます. 何を間違えているのか教えてもらえないでしょうか. 私が試した環境は Linux + XFree86 4.2.1.1 + NVIDIA が提供しているビデオカードの ドライバ(libGL 等を含む)です. 以下, 長文失礼します.
#include <stdio.h> #include <glut.h> #define WIDTH 512 #define HEIGHT 512 void display(void); int main() { glutInitWindowSize(WIDTH, HEIGHT); glutCreateWindow("test"); glutDisplayFunc(display); glutMainLoop(); } void display(void) { glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glViewport(0, 0, WIDTH, HEIGHT);
glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-WIDTH / 2, WIDTH / 2, -HEIGHT / 2, HEIGHT / 2, 0, 512); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); float s_coefficient[] = {0.0, 0.0, 0.0, 1.0}; float d_coefficient[] = {0.9, 0.9, 0.9, 1.0}; float a_coefficient[] = {0.0, 0.0, 0.0, 1.0}; glMaterialfv(GL_FRONT, GL_SPECULAR, s_coefficient); glMaterialfv(GL_FRONT, GL_DIFFUSE, d_coefficient); glMaterialfv(GL_FRONT, GL_AMBIENT, a_coefficient);
float light0_position[] = {0, 0, 0, 1}; float s_color[] = {1.0, 1.0, 1.0, 1.0}; float d_color[] = {1.0, 1.0, 1.0, 1.0}; float a_color[] = {1.0, 1.0, 1.0, 1.0}; glLightfv(GL_LIGHT0, GL_POSITION, light0_position); glLightfv(GL_LIGHT0, GL_SPECULAR, s_color); glLightfv(GL_LIGHT0, GL_DIFFUSE, d_color); glLightfv(GL_LIGHT0, GL_AMBIENT, a_color); // gluLookAt(0, 0, -256, 0, 0, 0, 0, 1, 0); // これは OK // gluLookAt(-256, 0, 0, 0, 0, 0, 0, 1, 0); // OK // gluLookAt(-256, 0, 0, 0, 0, 0, 0, 0, 1); // OK gluLookAt(0, -256, 0, 0, 0, 0, 0, 0, 1); // NG // gluLookAt(-256, -256, 0, 0, 0, 0, 0, 0, 1); // NG glutSolidSphere(20, 30, 30); glFlush(); }
quadric object 一つ用意すれば、組み合わせでいろんな形をつくれる。 一つで本当に済むのなら、そもそもobjectを作る必要すらなくて、OpenGLが勝手に 裏で持っていればいい話だ。アプリによってはそれで十分な場合もある。ただし、 全ての quadric の state が同じでよければ、という条件がつく。state change は高くつくので、本当に全部の state が同じでよいのでない限り、それぞれ別の quadric を作って使ったほうが速い。
>>221 glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB| GLUT_DEPTH);
glEnable(GL_DEPTH_TEST);
>>221 glEnable(GL_CULL_FACE); とか。
229 :
デフォルトの名無しさん :03/03/07 13:25
こんな汚ねぇコードも久し振りに見たw
>>226 ,
>>228 glutInitDisplayMode(GLUT_DEPTH) でした.
もともと FLTK を使ったプログラムだったのですが, GLUT_DEPTH に対応する
Fl_Gl_Window::mode(FL_DEPTH) をはじめて知りました.
しかも glut で書き直すときに GL_DEPTH_TEST も落としていたし ...
ありがとうございました.
>>229 , および ALL
それは私のあげたコードについてですよね. どの辺が汚いか, 指摘していただけると
助かります.
231 :
デフォルトの名無しさん :03/03/07 18:23
float s_coefficient[] = {0.0, 0.0, 0.0, 1.0}; float d_coefficient[] = {0.9, 0.9, 0.9, 1.0}; float a_coefficient[] = {0.0, 0.0, 0.0, 1.0}; ???????
232 :
デフォルトの名無しさん :03/03/10 23:48
glMap* の引数strideってなんなんですか?説明をどんなに読んでも分かりません。
次の要素までの増分
234 :
デフォルトの名無しさん :03/03/11 00:29
何の増分なんですか? u?でもuの変域が0.0〜1.0だとしても3とかが指定されてるし、 点間の距離だとしたら矛盾しまくりだし・・
GLfloat p[4][3] ={{0,0,0},{1,1,1},{2,2,2},{3,3,3}}, *q=(float*)p; int stride = 3 for(i=0;i<n;i++){ p+=stride; func(*p); //・・・{1,1,1}、{2,2,2} } のstride
途中pじゃなくqだった。まぁいいたいことは分かると思うけど。
237 :
デフォルトの名無しさん :03/03/11 00:42
あ、なるほど!!!!!そっちの増分かぁ。 で、結局データの次元と同じになるわけですね。なら二度手間のような・・ あと、glMap*で定義したu1u2と、glEvalCoord*で定義したuの相関性ってなんなんですか? u1~u2が0.0~2.0で、uが1/100だったら、ポイント間のuの増分が1/50だという事ですか?
インターリーブな配列を渡したい場合なんか。 あと、 u - u1 u^= ------- u2 - u1 とかいてありますな。
239 :
デフォルトの名無しさん :03/03/11 00:59
赤本にも書いてありますけど、いまいち分からないです・・
u1,u2の範囲を0.0〜1.0にマップするってことかな? たとえば0.0〜1.0じゃなくスクリーン座標で値を与えたい場合。 glMap2f(... // u1 = 0, u2 = 640, v1 = 0, v2 = 480 に設定 glEvalCoord2f(320, 120); //内部で上の式を使って 320->0.5, 120->0.25 に変換して評価 たぶんこんな感じかと。ちがってたらごめん
241 :
デフォルトの名無しさん :03/03/11 01:42
あぁなるほど。(多分)分かりました。ありがとうございます。 人に相談せず完全な独学でOpenglを極めた(日本)人なんているんでしょうか・・
242 :
デフォルトの名無しさん :03/03/13 02:58
NURBS,Bスプラインを図説してくれてるサイト教えてください
243 :
デフォルトの名無しさん :03/03/13 21:50
glutSwapBuffers(); で、表バッファを表示している最中に また glutSwapBuffers(); が着たらどうなるんでしょう?無視されるのでしょうか?
244 :
デフォルトの名無しさん :03/03/13 22:50
それとも表示が終わるまでプログラムがストップするのでしょうか?
∩
∧_∧ | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д`)// < 先生!こんなのを発見シマスタ!
/ / |
/ /| / \
http://saitama.gasuki.com/sinagawa/ __| | .| | \
\  ̄ ̄ ̄ ̄ ̄ ̄ ̄\ \_____________
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
>>243 普通のOpenGLはスレッドセーフでない。たぶん。
というレスで良いか。
247 :
デフォルトの名無しさん :03/03/13 23:40
>>246 と、いいますと、表示待ちの間はプログラムはとまっているということですか?
249 :
デフォルトの名無しさん :03/03/13 23:55
>>248 といいますと、、、どうなるんでしょう?
すいませんスレッドセーフの意味もさっき調べたばかりでよくわかってないです。
>>249 環境によって結果は違うし、そもそもそーゆー使い方は想定されてないから
何が起きてもしらんよ。という感じ。
書いた後気付いたが、
>>246 は、OpenGLじゃなくてglutやね。
ちなみに、glutはスレッドセーフじゃないみたい。
251 :
デフォルトの名無しさん :03/03/14 00:22
なるほど、、、なんか根本的に判ってないようです。 修行してきます、ありがとうございました。
書き方が悪かったのかな… まだ見てるかわからんけど… 複数のスレッドから同時にglutSwapBuffers()を呼んではいけない。 そーゆー仕様だから。 1つのスレッドでglutSwapBuffers()を連続で呼ぶのは良い。 処理が終わるまで帰ってこないから、順に処理されるだけ。 ということです。
ただ裏側表示するだけじゃねーの?
254 :
デフォルトの名無しさん :03/03/14 00:59
>>252 といいますと、ループではglutSwapBuffers()はその表示が終わるまで
ループがストップするということでしょうか?
255 :
デフォルトの名無しさん :03/03/14 01:28
これをコンパイルすると通るのですが、 アプリケーションエラー"0x1000bb1e"の命令が"0x00000070"のメモリを参照しました。メモリが"read"になることはありませんでした。 とエラーが出るのですが何故でしょう?glutKeyboardFunc(myKeyfanc);を消すと動くのですが。。 #include <GL/glut.h> #include <string.h> #include <math.h> #define DEG_TO_RAD 57.29578 GLfloat theta = 0.0; GLsizei w, h; unsigned char kv='a'; void myKeyfanc(unsigned char key, int taa, int fasa) { if(key == 'd') {if(kv=='a') { kv = 'b';} else{kv = 'a';} } }
256 :
デフォルトの名無しさん :03/03/14 01:29
void myreshape(GLsizei w, GLsizei h) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); if(w <= h){gluOrtho2D(-2.0, 2.0, -2.0*(GLfloat)h/(GLfloat)w, 2.0*(GLfloat)h/(GLfloat)w);} else{gluOrtho2D(-2.0*(GLfloat)w/(GLfloat)h, 2.0*(GLfloat)w/(GLfloat)h, -2.0, 2.0);} glMatrixMode(GL_MODELVIEW); glViewport(0, 0, w, h); } void myidle() { if(kv=='b'){ theta = theta + 2.0; if(theta>= 360.0) theta = theta - 360.0; } glutPostRedisplay(); } void mydisplay() { GLfloat radtheta = theta/DEG_TO_RAD; glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex2f(cos(radtheta), sin(radtheta)); glVertex2f(-sin(radtheta), cos(radtheta)); glVertex2f(-cos(radtheta), -sin(radtheta)); glVertex2f(sin(radtheta), -cos(radtheta)); glEnd(); glutSwapBuffers(); }
257 :
デフォルトの名無しさん :03/03/14 01:29
void init() { glClearColor(0.0, 0.0, 0.0, 0.0); glColor3f(1.0, 1.0, 1.0); glEnable(GL_LINE_STIPPLE); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(-1.0, 1.0, -1.0, 1.0); } int main(int argc,char** argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); glutInitWindowSize(500,500); glutInitWindowPosition(0,0); glutKeyboardFunc(myKeyfanc); glutCreateWindow("simple"); glutIdleFunc(myidle); glutDisplayFunc(mydisplay); glutReshapeFunc(myreshape); init(); glutMainLoop(); }
こっちはそこそこ盛り上がってるのに DirectX スレは全然だね。 ゲ制作のほうに行ってるのかな。
>>255 glutKeyboardFunc(myKeyfanc);
を
glutCreateWindow("simple");
の後に呼ぶと動いた。
>>258 ゲ作にあるOpenGLスレは廃れてるけどな。
261 :
デフォルトの名無しさん :03/03/14 14:04
>>259 ありがとうございました、書き方が判りにくくてで申し訳ないです。
用語とかわからないもので、、でも判りました、ありがとうございました。
262 :
デフォルトの名無しさん :03/03/14 14:47
>>260 うわーできました!!凄い感謝です!これに数時間費やしてマジで憂鬱でした。
なるほど、先にウィンドウ作ってないとダメっぽいですね。道理な気がします。ほんと感謝です。
それともう一つ質問なんですが、mainのglutKeyboardFunc(myKeyfanc);の下に
glutMouseFunc(mymouse);を追加して
こういう関数をmain関数の上に追加したのですが、なぜか動かないんです、何故でしょうか?
void mymouse(int x, int y, int button, int state)
{
if(state == GLUT_DOWN && button == GLUT_LEFT_BUTTON){exit;}
}
263 :
デフォルトの名無しさん :03/03/14 14:50
動かないというよりマウスに反応しないのです void mymouse(int x, int y, int button, int state) { exit(1); } だと動くのですが、、、 あと上のexit;はexit(1);の間違いです。
264 :
デフォルトの名無しさん :03/03/14 15:05
glutなんて別スレ立ててそこでやれ。臭くてかなわん。
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
直通 090−8505−3086
URL
http://www.h5.dion.ne.jp/~grobal/ メール
[email protected] グローバル探偵事務局
まずSPAMの悩みを解決して欲しいにょ。
268 :
デフォルトの名無しさん :03/03/15 00:47
>>267 ありがとうございます、出来ました、しかしそんな間違いをしていたとは、、、、本に書いてあった通りやったのですが
本って結構間違いあるものなんですね、、
そこのURL参考にさせていただきます。
269 :
デフォルトの名無しさん :03/03/19 20:47
struct vector3_t { vector3_t(float x, float y, float z) : x(x), y(y), z(z) {} vector3_t(const vector3_t &v) : x(v.x), y(v.y), z(v.z) {} vector3_t() : x(0.0f), y(0.0f), z(0.0f) {} vector3_t& operator=(const vector3_t &rhs) { x = rhs.x; y = rhs.y; z = rhs.z; return *this; }
270 :
デフォルトの名無しさん :03/03/19 20:48
・ ・ ・ vector3_t Normalize() { *this = *this * (1.0f/Length()); return *this; } union { struct { float x; float y; float z; }; float v[3]; }; }; 269の上の3つの定義と、270の共用体との関連を教えて下さい。意味分からないです。
C++のスレで聞いた方が早いよ
272 :
デフォルトの名無しさん :03/03/19 21:22
マルチポストウザいからやめろ
273 :
デフォルトの名無しさん :03/03/19 22:12
フレームレートを60に固定するにはどうすればいいんでしょうか。 なんたらfrequencyって関数を使えとか聞いた事があるんですけど。
wglSwapIntervalEXTあたりはどう?
その関数について少し調べたんですが、情報がすくな過ぎて・・ どっか拡張関数の一覧が書いてあるページ知りません?
うーん、フレーム周期の最低値を固定するみたいだけど、フレームレートの最大値を固定したいんだよ〜・・
278 :
デフォルトの名無しさん :03/03/21 20:40
すみません。影を作るところの注意点で、 shadow will be co-planar with the surface it is on. である事がダメだと書いてあって、 Because you can't represent depth values with infinite precision, the shadow won't always have depth values exactly equal to those of the surface.Sometimes they'll be closer, and other times, they'll be farther away,and the end result is that the shadow can have holes in it.という事が起きてしまい、 解決策は polygon offsets を使うか、to be sure to draw the shadow before anything that might appear in front of it.だそうです。 ここら辺の説明がやたら英語が分かりにくくて意味がわかりません。影と平面のデプスバッファが同じなのが問題?みたいな事はなんとなくわかるんですが・・ どうか説明して頂けないでしょうか・・?
平べったい影を床に置いたとき、完全に張り付くとは限らなくて、床の方が 前に出た部分が影の穴あきになってしまう。これを避けるために、ここでは depth test を無効にした上で影を描く手を使うが、この場合、先に影を描 いた上で、その前にあるものを描く必要がある。
280 :
デフォルトの名無しさん :03/03/22 13:08
あぅ、本をご存知でしたか。ありがとうございました。ところで、この本の469ページ上段で、シャドウボリューム内にビュー平面が入りこんだ場合の問題点について書いてますが、 肝心の対処法が「かなりアルゴリズムを複雑化してしまう」で投げっぱなしなんですよね。この本って投げっぱなしのオチがメチャクチャ多くないですか?
283 :
デフォルトの名無しさん :03/03/22 19:27
うわ、デプステストに合格するって、手前側にあるって事でしたっけ?向こう側にある、って事でしたっけ?
>>283 Zバッファの値との比較関数を選ぶことができるぞ。
285 :
デフォルトの名無しさん :03/03/22 20:39
あ、デフォルトではLESSでしたよね。ってことはデフォルトでのパスは向こう側って事ですか?
286 :
デフォルトの名無しさん :03/03/22 21:02
キャッピングって一体なんなんだ
向こう側と言われても・・・Z値を放り込むのはこちらなわけだし・・・
288 :
デフォルトの名無しさん :03/03/22 21:28
なぜか最近、一部の3Dアプリが起動と同時に強制終了して動かないんだけど、理由分かる人いる?
289 :
デフォルトの名無しさん :03/03/22 21:29
Neheで絶賛していたので買ったのだが、実はほとんど読んでない。業務で 作ってるのはGL自体のレンダリングの技はあまり関係なくて、ビジネス ロジックとオブジェクトの関係が複雑怪奇になる問題をどうするかで、Game 作成の技が流用できるのではと踏んだのだが、Game自体も奥が深くてなか なかとっかかりが見出せない。
291 :
デフォルトの名無しさん :03/03/22 22:02
そうですね・・あの本は、ゲームを作るにあたって「何をすればいいか」という道標的な本ですからね。 ライティングにしろシャドウにしろ、いざ突き詰めて行く為にはそれぞれ別の本が必須になってしまいますよね。 でも、自分としてはWGLの説明をちゃんとしてくれてる本が全然見つからなかったので助かりました。
Cygwin + g++ + SDL + OpenGL な環境で勉強しています。 そこで、nvidiaの拡張を使ってみたいのですが、どうしたらよいのでしょうか? libGLNV.aみたいなのがあるのでしょうか?教えてください。 また、簡単なOpenGL(SDL環境で)を使ってみたのですが、 ハードウェアクセラレーションが効いてない気がします。この辺も教えてください。
具体的には glTexEnvi(GL_TEXTURE_SHADER_NV, GL_SHADER_OPERATION_NV, GL_TEXTURE_CUBE_MAP_ARB); を実行すると、GL_INVALID_ENUMになるようです。 GLEXT.hを突っ込むだけじゃだめみたいなんで、教えてください。
294 :
デフォルトの名無しさん :03/03/23 17:20
実装依存
GeForce4MXなんですけど、もともとダメなんでしょうか?
296 :
デフォルトの名無しさん :03/03/24 23:51
288です。誰か教えて・・・
D3Dみたく画像読むだけでアルファ付きテクスチャ作ってくれるライブラリないですか?
298 :
デフォルトの名無しさん :03/03/25 01:10
探すより作った方が早いだろ
299 :
デフォルトの名無しさん :03/03/25 02:49
圧縮までかけてくれんのはなかなかないねぇ。
300 :
デフォルトの名無しさん :03/03/25 03:48
圧縮だってウェーブレット使えば楽だろ
>>292 Geforce4MXではテクスチャシェーダは動かないよ。(NV30のソフトエミュとかは除く)
glGetString(GL_EXTENSIONS)で使えるエクステンション確認してみ?
あと、拡張命令の使い方の手順は大丈夫?文章を見た感じだといきなりなにも初期化
せずに使ってるっぽく見えるけど…
NVIDIAのOpenGL SDKを使えば比較的簡単に拡張命令を利用できるよ。
確かめてないから言い切れんけど拡張命令を利用する程度ならコンパイラ依存は
ないはず。
303 :
デフォルトの名無しさん :03/03/26 02:00
水を三次元格子で表現してますが、処理重過ぎです。
NVIDIA OpenGL SDKを利用して拡張命令を初期化するなら glh_init_extensions( 拡張命令 ); でOK。
305 :
デフォルトの名無しさん :03/04/02 20:55
どなたかメタボールについて詳述されているサイト、もしくは書籍はご存知ないでしょうか? アマゾンで探してみた限り、メタボールの文字さえ見かける事が出来ませんでした。
306 :
デフォルトの名無しさん :03/04/02 20:55
あぁ、OpenGLに関してのメタボールの記事です。宜しくお願いします。。
OpenGLって無料なのですか?
309 :
デフォルトの名無しさん :03/04/03 21:05
有料ですよ。個人ライセンスだと\12000。
>>309 ではGLUTやGLUIとかをダウンロードしたら24000円もかかるのですか?
釣られてあげると、ぐぐればすぐわかる。
ぐぐってみたならそれが真実
>>305 Marching Cubesとかどうかね。
特許あるっぽいけど。
316 :
デフォルトの名無しさん :03/04/04 01:12
>>314 ありがとう。書籍じゃないみたいだけど調べてみます。
>>313 GLUIをダウンロードしても金は取られなかったっということは
>>309 って俺をはめたネタ?
しつこいですね。釣りっぽい質問するからですよ。 自分で調べる努力はしようね。
320 :
デフォルトの名無しさん :03/04/06 19:03
ぬお・・マーチンキューブ法って、メタボールじゃなくてボリュームレンダリングの技法だったんですね。 まぁこっちのが精度高そうだし応用利きそうだからいいですけど。。
322 :
デフォルトの名無しさん :03/04/07 17:22
hage頭
323 :
デフォルトの名無しさん :03/04/07 23:17
カーマックage
324 :
デフォルトの名無しさん :03/04/08 00:26
LW3DのLWO形式のファイルをQUAKEのMD2形式に変換するツールを知りませんか?
325 :
デフォルトの名無しさん :03/04/08 12:58
age
326 :
デフォルトの名無しさん :03/04/08 20:27
shr
327 :
デフォルトの名無しさん :03/04/09 17:40
hky
329 :
デフォルトの名無しさん :03/04/10 02:00
ああhhr
メタボールって英語では違う言い方が多かったからそれでググレ バとかビとかそんなやつ。なんだっけ?
332 :
デフォルトの名無しさん :03/04/10 15:19
あの、すみません。LW3DのLWO形式をOpenGLで読み込む為のライブラリって、やっぱりアレしか無いんですよね。。 MD2形式に変換するのがあれば良かったんですが・・ それか、MilkShapeにLWOを読み込んでMD2で出力、もしくは始めからMilkShapeでモデリングして、MD2で出力、くらいしか無いんですかね?
333 :
デフォルトの名無しさん :03/04/10 20:25
あげ
335 :
デフォルトの名無しさん :03/04/11 09:16
>334 LW3Dのプラグインであったのか!マジありがとうです!
openGLの新しいヘッダーとかみつからないんだけどさー、2001年6月30日のしかない。 ひょっとして更新されてないの?Ver1.4とかはでてるらしいのに、PDFしかDLできないし・・・。 glh_extensions.h(NVIDIAのだから?)のglh_init_extensionsとか使うとメモリリークしてるしさ、 しょうがないからどっかのソースみたいにglh_shutdown_extensionsとかって関数つくってみたよ。
337 :
デフォルトの名無しさん :03/04/13 15:25
>>336 >新しいヘッダーとかみつからないんだけどさー
OpenGLでプログラミングする以前の知識レベル。出直せ。
(^^)
339 :
デフォルトの名無しさん :03/04/17 20:11
OpenGLでワンスキンメッシュっていうかジオメトリブレンディングするとしたら 自力でやるしかないですか?
341 :
デフォルトの名無しさん :03/04/18 03:19
>>340 いやーこれ結構アテにならないよ。全ての頂点に関節の数の分のウエイトの配列が必要だし。
Vertex Programも命令数やシェーダーの組み合わせ増大の問題があるのであんま良くないような
気がするんだけど、今はこっちが主流なのかな?
342 :
動画直リン :03/04/18 03:24
>>341 >全ての頂点に関節の数の分のウエイトの配列が必要だし。
ARB_vertex_blendなら4関節、EXT_vertex_weightingなんて2関節分の
行列しかのせられない訳だが、それが問題か?影響しない関節のマトリクス
まで持つ必要は基本的にないし、そもそもできないが。
# どんな実装をするにしろその頂点に影響する関節数分のウェイト値は必要。
>Vertex Programも命令数やシェーダーの組み合わせ増大の問題が
>あるのであんま良くないような気がするんだけど、
正直、場合分けがコストに見合わないなら使わないウェイト値に0を入れて
おけばいいだけの話。(PCだとGPU側で無駄な計算をすることよりもCPUから
の頂点キックの回数が増えるほうが速度的には問題)SSE2なり使ってCPUで
最適なスキン処理作るのも場合によってはありだろうけど生産性とかの問題
でたいていの場合は考慮外。
# シェーダーの組み合わせっていってるけど、シェーダー以外の組み合わせ
# が膨大になるリソース(マテリアルとか)だってうまく管理できるんだから、
# それは個々のコーディングの設計の問題だと思う。
>>343 >ARB_vertex_blendなら4関節、EXT_vertex_weightingなんて2関節分の
>行列しかのせられない訳だが、それが問題か?影響しない関節のマトリクス
>まで持つ必要は基本的にないし、そもそもできないが。
># どんな実装をするにしろその頂点に影響する関節数分のウェイト値は必要。
今ちょうどそこら辺を調べてる最中だったんだけど、
基本的にワンスキンのモデルってVertexPointerやDrawElements系の頂点、インデックス配列で
一気にドカっと描画するよね。頂点ごとには多くて三個ぐらいしか影響するボーンは無いと
思うけど、普通は一気に1000個くらいは頂点を処理しないといけないから関節の行列は
全てバインドしておかなきゃいけないんじゃないかって気がするんだけど。
VertexWeightPointerEXTの引数でどの行列を参照するかっつう指定が無いし。
MatrixPaletteを使えばなんか出来そうな気もするけどもうビデオカードがなかなか対応
してないんだよね。
いや、この認識が間違ってるんならそれでもいいんだけど。
>>344 >頂点ごとには多くて三個ぐらいしか影響するボーンは無いと
>思うけど、普通は一気に1000個くらいは頂点を処理しないといけないから関節の行列は
>全てバインドしておかなきゃいけないんじゃないかって気がするんだけど。
前者2つの拡張を使うのであればそもそも同時に4つ(2つ)までの行列しか参照できない
ので…。
頂点プログラム系拡張ならテンポラリに行列をおけるだけおいて、アドレスレジスタを使って
任意の行列を使えるので、こちらも全てバインドする必要なんてなし。
# というか、仕様嫁。
>>345 もちろん仕様を読んだ上で
>いやーこれ結構アテにならないよ。
って言ってるよ。
343は
>ARB_vertex_blendなら4関節、EXT_vertex_weightingなんて2関節分の
>行列しかのせられない訳だが、それが問題か?
と言っているが問題なんでしょ?
>>346 >>341 >全ての頂点に関節の数の分のウエイトの配列が必要だし。
>>344 >VertexWeightPointerEXTの引数でどの行列を参照するかっつう指定が無いし。
仕様をまともに読んでるなら、こんなこと言わないと思うけど…。
# もしかして階層構造全体の全ての行列のウェイト値を全ての頂点で持たないといけないと思ってるのかな?
>343は
>>ARB_vertex_blendなら4関節、EXT_vertex_weightingなんて2関節分の
>>行列しかのせられない訳だが、それが問題か?
>と言っているが問題なんでしょ?
↑これは、341の
> 全ての頂点に関節の数の分のウエイトの配列が必要だし。
に対する回答だったつもり。結局、前記2つの拡張を使う限り一頂点には2(4)つまでの
ウェイトデータしかもてないわけで、これ自体をさして「アテにならない」というのが意味不明
だったので問題か?と聞いたつもりだったのだけど、どう?ソフトウェア頂点処理をしても
結局その程度のウェイトとインデクスデータは持つわけで、それが問題になるとは
思えないのだけれど。
頂点によっては1つ2つマトリクスが冗長になるかもしれないけど、それがボトルネックになる
システムもあまりないでしょ。
>>347 GL_ARB_vertex_blendはn個のウェイトが有効だよ。その場合n個分のウェイト配列が必要になるはずだけど。
つーかなんでつっかかられてるのかわかんないんだけどこれ以上はイヤなんでもう書き込みません。
Direct3DとOpenGLで行列の動作の違いとかありますか?
350 :
デフォルトの名無しさん :03/04/19 15:27
コラムメジャー
351 :
動画直リン :03/04/19 15:38
行列は数学の話だと思うが
>>348 >GL_ARB_vertex_blendはn個のウェイトが有効だよ。その場合n個分のウェイト配列が必要になるはずだけど。
四つまでのマトリクスを指定するのだから当たり前の話だよ。これをもって
>>341 > 全ての頂点に関節の数の分のウエイトの配列が必要だし。
が「いや〜結構あてにならない」ということの意味がわからないので説明して欲しいだけ。
だって、自前で同様の処理を行う時だって、結局n個の関節の数分のウェイトが必要な訳
で、拡張を使ったときにだけ特別問題になることじゃないし…。
(ARB_vertex_blendで無駄にウェイト値を持ちたくないのなら、頂点キックの回数が増える
ことを引き換えにメッシュを関節数でグループ分けしてglVertexBlendARBで行列の量を
切り替えることもできるし)
つっかかっている訳じゃないよ。
じゃあ最後に
> >GL_ARB_vertex_blendはn個のウェイトが有効だよ。その場合n個分のウェイト配列が必要になるはずだけど。
> 四つまでのマトリクスを指定するのだから当たり前の話だよ。これをもって
>
4つというのがどこの数字だかわなんないけど(WEIGHT_ARRAY_SIZE_ARBの数字?)
例えば20個の関節があるモデルに対してある頂点は2つのボーンしか参照しないでものこりの18個分のウェイトも必要という話。
大体2つないし4つまでしか関節が増やせないのならその制約自体が
>>399 の要求に対して「あてにならない」と言える要素だと思うが。
他にも対応しているカードが少ないとか色々な要因を含めて俺はあてにならないと言ってるだけ。
>
> つっかかっている訳じゃないよ。
>
ムッチャ気分悪いんだけど
>>354 >4つというのがどこの数字だかわなんないけど
実質的にこの拡張で使えるマトリクスの数字。ただ、これは確かに将来的には4ではないかもしれないね、ゴメン。
(でもARB_vertex_blendでMAX_VERTEX_UNITSが4超えてる環境ってでないとおもう。今後は頂点シェーダーが
主流になると思うので)
>例えば20個の関節があるモデルに対してある頂点は2つのボーンしか
>参照しないでものこりの18個分のウェイトも必要という話。
これは前述したように作り方しだいじゃないの?マトリクスのグループ分けを行えば
そういう問題も起こらないし、仮にGL_MODELVIEW20_ARBまで使えてもそんな無駄な
データを持たせる実装を強制する必要はないし。
>大体2つないし4つまでしか関節が増やせないのならその制約自体が
>>399 の
>要求に対して「あてにならない」と言える要素だと思うが。
>他にも対応しているカードが少ないとか色々な要因を含めて俺はあてにならない
>と言ってるだけ。
拡張仕様には制限があるし、もちろん全てのOpenGL環境で動くわけではないし、
最初から
>>340 で万能であることを喧伝してないし(その為に仕様にリンクしたし、
NVIDIA系とかATI系とか書いたつもりで、頂点シェーダーもできるだけ一般的な
ARB系を紹介した)そんなことを言い出したら
>>339 の情報ではだけではあまり
に判断材料が足りないわけですよ。
それを突き詰めていったら「
>>339 OpenGLではできません。マル。」で終わってしまう訳
で、一応こういう事もできるって紹介を「あてにならん」で一蹴するのはあまりに
言葉足らずなのでは?
∧_∧ ( ^^ )< ぬるぽ(^^)
∧_∧ ( ^^ )< ぬるぽ(^^)
>>358 その方法は
>>353 の
> (ARB_vertex_blendで無駄にウェイト値を持ちたくないのなら、頂点キックの回数が増える
> ことを引き換えにメッシュを関節数でグループ分けしてglVertexBlendARBで行列の量を
> 切り替えることもできるし)
の方法だね。この部分にレスしなかったのは、こんなことをやるやるメリットが無いような気が
したからなんだけど。実際40個の関節があるのなら40回前後パイプラインが分断されるわけだし。
まあ実際にデモを作ってるところを見ると有効な方法なんだろうね。
でもRadeon系ではこの実装の方が速いんだろうけどこんな実装系依存のデータ形式にする
よりビデオカードに依存しないやり方にしたほうがいいと個人的には思う。個人的にはだよ?
何も絶対使うなとか使い物にならんなんて言ってるわけじゃないんで。
あと分かっているとは思うけど
>例えば20個の関節があるモデルに対してある頂点は2つのボーンしか
>参照しないでものこりの18個分のウェイトも必要という話。
これはExtensionの要件としては正しいから。でもこんなことをやる奴はいないね。
われながらアホらしい例えだったと思う。
ちなみにAPI Specificationを見るとARB_vertex_blendとARB_matrix_paletteが
並んで書かれているんだけど、恐らくセットで使うのを目的としてたんだろうと思う。でも
ARB_matrix_paletteはまだどこも実装してない模様。
一々誤解を与えそうな表現に対してあらかじめ予防線を張らないでも普通に議論できるでしょう。
俺はただ使ってもあんまうれしくないんじゃない?って言いたかっただけなんだが。
つーわけで一方的で申し訳ないんですけど、いいかげん終わらせたいんでもう質問形は無しで
お願いします。
>>359 拡張が全ての環境で使えなかったり、パイプラインが分断されるデメリットについては
こちらも理解しています。ただ、それを理解したうえで利用するのは個々のユーザーで
あり、それを341さんの主観的でかつ、実際にはありえない仮定(全ての頂点に関節の
数の分のウエイト等)を基にした言葉の足りないチャチャ(
>>341 )でこちらも不愉快になった
のでそれなりにそこから発生した疑問を質問させてもらったつもりです。
(結果、341さんは実際にvertex_blendを使っていないだろう事はわかりました)
# パイプラインが分断される事や一部の環境でしか利用できないことを承知の上で
# 利用する人もいるでしょう。
# それを主観で「うれしくない」とか一刀両断するのは適切な発言ですかね?
最初から「拡張は使える環境が限定されているし、仕様としても一般的な要求仕様
に対して充分ではないスペックである場合が多い」旨を書いてもらえば、またその後
は変わっていたと思います。やたらご立腹のようですが、こちらも
>>341 の発言でカチン
ときているのですよ。枝葉の表現でこちらも適切な表現でなかった部分は申し訳ない
と思いますが、一方的な主観や仮定に基づいた感覚的な意見には反感を覚えます。
361 :
デフォルトの名無しさん :03/04/26 17:17
363 :
デフォルトの名無しさん :03/04/30 22:51
wglだったら楽勝だけど。
364 :
デフォルトの名無しさん :03/05/05 11:52
3Dソフトを作る予定なんですが・・。 openGLのメソッド改造しちゃったのを勝手につかっちゃっていいんですか?
365 :
デフォルトの名無しさん :03/05/08 02:04
著作権侵害で箆棒な損害賠償請求されるよ。
366 :
デフォルトの名無しさん :03/05/10 15:33
微分方程式の数値解をグラフにして表示したいのですが 計算部分とグラフ表示のループを分けたいのですがどうすればいいのでしょうか?
367 :
デフォルトの名無しさん :03/05/10 22:19
>>366 マルチスレッド?
計算結果を全部メモリに置いて同期処理、あるいはFIFOで送る
368 :
デフォルトの名無しさん :03/05/11 13:50
うーんむずそうですなあ、、、 挙げていただいたキーワードけんさくしてみます
>>366 そもそも計算と表示を同時にやる必要があるの?
370 :
デフォルトの名無しさん :03/05/14 13:11
おい!テクスチャ貼ったらオブジェクトの陰影が無くなったぞ! マルチテクスチャリングでライトマッピングするしかないのか!!?
371 :
動画直リン :03/05/14 13:13
でもLW3Dではライトマッピングとか関係無しに、テクスチャ貼ってても普通に陰影付いてるんだよ! これって何故!!??
混合モードが、GL_DECALかGL_REPLACEになってないか?
ありがとうぅぅぅおl!!!! ひっさしぶりに組んだから思いっきり混合モードの存在を忘れとったワイ。 それにしても、やってみてから思ったけど、テクスチャ貼ったポリゴンモデル(アニメキャラ)にヘタにMODULATEにするとキモく見えるね。処理も重いし。
GL_SEPARATE_SPECULAR_COLORも忘れずに…
376 :
デフォルトの名無しさん :03/05/15 00:36
円錐作れないよ〜〜
377 :
デフォルトの名無しさん :03/05/15 00:38
間違えた 円柱造れねーよー
円盤二枚と長方形いっぱい
ぐぐれば見つかると思うけどな。 単純なのは、同じ要領で円盤2枚の各頂点を定義して、 側面はそれらを長方形につなげて描く。
ヽ(τωヽ)ノ モウダメポ
最近は円柱ごときでも sin,cos を使うのか?
ふえ〜 やっとできた。
なんだかんだ言ってfor文の理解が足りなかったようです。
>>380-383 誘導&アドバイスありがとうございました。
(^^)
387 :
デフォルトの名無しさん :03/05/15 22:35
>>367 >>369 結局myidleの中で計算部分の関数をループで複数回実行するという形に落ち着きました
388 :
デフォルトの名無しさん :03/05/16 02:50
うん。D3Dでやればいいのに、とオモタのは俺だけじゃないハズ。
391 :
デフォルトの名無しさん :03/05/16 16:41
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB,Tex->width, Tex->height, GL_RGB, GL_UNSIGNED_BYTE, Tex->data); なぜかこの行で強制終了してしまう。なんで?
392 :
デフォルトの名無しさん :03/05/16 18:49
391は解決。どうやったらテクスチャの非表示部分を透過出来るの? glBlendFuncでやっても上手く出来ない・・
だってDirectXって毎回仕様変わるんですもの。
394 :
デフォルトの名無しさん :03/05/16 22:45
誰かBMPのテクスチャの透過のやり方教えて下さい。 黒を透過色にするんだから、 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, TitleTex->width, TitleTex->height, 0, GL_RGB, GL_UNSIGNED_BYTE,TitleTex->data); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0); でなるはずなのに、全体が半透明みたいになってしまって上手く透過されません。
黒の部分をA=0、その他をA=1のGL_RGBAデータにすれば? glAlphaFunc(GL_GREATER, 0);←アルファの比較であって、カラーは関係ないよ。
396 :
デフォルトの名無しさん :03/05/27 21:53
>394 395さんの言うように、まず画像データをRGBAで作成してそれを読み込む。 その後 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TitleTex->width, TitleTex->height, 0, GL_RGBA, GL_UNSIGNED_BYTE,TitleTex->data); でやって、 glAlphaFunc(GL_GREATER, 0.5); glEnable(GL_ALPHA_TEST); これで出来るはず。 あと、Blend関連は特にBMP通過とは関係ないよ 確かにこれでやると黒を通過色に出来るが、厳密な通過色ではないので テクスチャが何枚か重なると色が変わってくるよ。
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
398 :
デフォルトの名無しさん :03/05/28 17:36
VisualC++用に作ったソースを、Borlandで動かそうとしています。 ファイルは4つあり、インクルードするGLのヘッダファイルは gl.h、glaux.hの2つです。 この4つのファイルをbcc32でコンパイルすると、 「外部シンボル'○○'が未解決 (c:\~・・・~\●●.OBJが参照)」 というエラーがいくつか出ます。 エラーメッセージの○○の部分は、auxルーチンが指定されてました。 auxInitPositionやauxMainLoopなど。 VC++では正常動作したのに、bccで動かないというのは、 どんな原因が考えられるでしょう? bccには・・・というかGLプログラミング自体に慣れていないのですが、 こういうとこ疑ってみれば?といった感じでかまいませんので、 ご助言よろしくお願いします。
>>398 ライブラリがリンクされてないっぽい感じ。
auxは古いやり方なので、glutにしたら良さげ。
bccでの手順もすぐ見つかるし。
BCCDeveloperで開発してるなら ライブラリをプロジェクトに入れたらうまくいかないかな
うまくいってもVCとBCCはライブラリの形式が違うから 今度はそのせいでエラーが出るかも
GLUTはVCでもbccでもうまくいきました。 なんでわざわざaux使おうとしてるかというと、教授がGLUT嫌いみたいで、 渡されるサンプルプログラムではauxしか使われてないからです。 というか、動作の確認したら自分でGLUTに書き直してしまいますが。 家にVCがないので確認のためにもと思いまして。 bccはフリー版を使ってます。
ライブラリのリンクって、bccではどこをいじればいいんでしょう? すいません質問厨で。 GLUTで動かしたときは、glut32.libにリンクの設定をした覚えは これといってなかったんですが・・・
え〜、bccは諦めました。 これからgccで試してみます。
>>405 スタティックライブラリは変換できない。
>>406 の3件目にBCC用のGLAUX.LIBがあったから試してみれば?
>>407 ハイレゾにしてみると分かるけど、すごく重くねぇ?
裏ですごい計算してるのか、CPU の割り当てが低いのか、
OpenGL がダメダメなのか、詳しい人解説きぼん。
スクエアの技術がダメダメですよ奥さん
なんでワザワザOpenGLなのか
なんでだろ〜、なんでだろ〜、なんでなんでだろぉ〜
>>409 重いか?GeForce2で1600x1200の画面にしてサクサク動いているが・・・。
CPUは800MHzな。
ハイレゾって久し振りに聞いた
>>413 GeForce4 Ti4200なんだけどなぁ。
XI Benchで5000くらい。
画面のプロパティーで解像度上げただけってオチはないよな?
スクリーンセーバーの設定で変えるんだが。
そのハイレゾかい。言わせてもらおう。GeForce2にそんな設定は無い。 そのハイレゾとやらを切ればええんちゃうの?
417 :
デフォルトの名無しさん :03/06/06 10:53
ていうか、このデュープリズムのキャラみたく、髪の毛もアニメーションさせるにはどうすりゃいいんだ? 髪の毛にもボーン仕込むわきゃないし。
418 :
デフォルトの名無しさん :03/06/06 10:57
既出かもしれんが、MS は Longhorn での OpenGL のサポートを 「90%の確立で中止する」とか抜かしてるらしいな うちの会社OpenGLべったりだからグラフィックスやってる連中がどう 対応するのか怖いような楽しみなような…
Mesaみたいなラッパーが出るだろ
420 :
デフォルトの名無しさん :03/06/06 18:54
> 髪の毛にもボーン仕込むわきゃないし。
仕込んでるんじゃねーの?
どうやってワンスキンにしているかは知らないが。
>>418 Windowsで古いソフトが動かなくなるのは問題やし、
いきなり使えなくする事は無いだろう。
>>418 Longhornって普通の窓描画もDirectX使うらしいからな
わざわざ一部分だけOpenGL動作にさせるわけにはいかんだろうし、 OpenGLはエミュレータ動作になるってことかな。
つーかOpenGLはすでにDirectDraw使ってるけどな。
>>418 Macに乗り換え!
ほんと、PCって使えない。
MacもPCなわけだが
427 :
デフォルトの名無しさん :03/06/07 10:48
申し訳ありませんが、だれか教えてください。 openglを始めたいのですが、implibでdllから、libを作りたいの ですが、ファイルを開けないっていわれてlibファイルができません。 どうすればよいのでしょうか?OSはXPで、bccをつかっています。
google
429 :
デフォルトの名無しさん :03/06/07 18:43
cygwinって手もある。
431 :
デフォルトの名無しさん :03/06/08 20:22
OpenGLか、なつかしい・・・。 俺がやってた7年前はOnyx2RE使ってたが、 今はその100分の1の価格で同程度の働きするんだろうな・・・。
質問です。 マテリアル設定の、GL_SHININESSは値が大きいほど明るくなるはずですが、 なぜか、0の時が一番輝いて見えてしまいます。 何かがおかしいはずですが、一向に見当がつきません。識者の方で 心当たりがおありでしたら、お教え願えればと思います。 環境: Redhat9 + GeForce4MX(nvidiaドライバ導入済み) ですが、 vmwareのWindows2000上(ソフトウェアエミュレーション)で動かしたときも なっていましたので、環境が問題ではないきがします。
>>433 GL_SHININESSは鏡面反射の強度で、値が大きくなるほど
鏡面反射部分が小さく(鋭く)なります。
なので0.0を指定すると反射する面積が大きくなり、結果として
明るく見えてるのでは?
勘違いしてたらゴメンなさい。
>>434 レスありがとうございます。
しかし、GL_SHININESSが0の時に明るく金属っぽくなり、
値を増やしていくと暗くプラスティックぽくなってしまうんです。
あと、すみません情報が足りませんでした。
ライトはスポットライトをあてています。点光源では問題なさそうでした。
>>434 ごめんなさい。ライトがとんでもないところにありました。
ちゃんと直りました。一応、報告しておきます。
437 :
デフォルトの名無しさん :03/06/18 17:47
ある一点を中心にある点を回転、というのはどうやれば出来るんでしょうか? 例えば肩の回転に従って腕、手を回転させるような場合です。
438 :
デフォルトの名無しさん :03/06/18 22:12
glTranslate(x,y,z)である一点まで移動 そこで glRotated(angle,ax,ay,az)で回転処理 で出来る。 あとはglPushMatrix()とglPopMatrix()あたりでもみとけ。
あ、ボーン処理なんでglBeginとglEndでトリップやってる間でボーン適用該当ポイントだけを弄くるんです。 ですからglTranslateやRotateは使えません。
441 :
デフォルトの名無しさん :03/06/18 22:21
ボーン開始位置を中心にボーン適用ポイントだけを回転させないといけないわけです。 x軸を中心に半径rでθ回転させたら、確か位置は [x,r*sin(θ),r*cos(θ)]になると思うんですが、その後向きを直してあげたら、これでいけるんでしょうか?
無理でした。うーん、glTranslatefとRotatefの動作を自分で行列演算やるしかないのかな。
>>437 さん
おお!オラもボーン処理したいです。。参考にさせていただきまつ。
ボーン処理ってワンスキン処理の事?
>>407 みたいな。
えっと、ワンスキン処理が何かは良く分かりませんが、 その名の通り骨格を入れてオブジェクトを変形させる事が出来る機能です。 ボーンの適用されるポイントをボーンの動きに付随して動かさないといけないので苦労してます。 しかも腕は肩+腕、手は肩+腕+手の動作が加わるツリー構造なんで余計ややこしいです。
オブジェクト自体に対するものと違って、オブジェクトの特定ポイントだけの回転、移動ですから、モデル構築の過程でポイントを参照する際にポイントを移動,回転しないといけないので、 glBeginやglEndの間でボーンを中心に各点の移動、回転処理をしないといけないわけです。当然glTranslateもglRotateも使えません。 頭痛くなって来ます;
OpenGL はジオメトリ演算ライブラリではなくグラフィックライブラリ
>448 ハァ?
やりたい演算は自分で作りなってことですか
>>451 まずは基本を理解しろ、三次元空間における座標計算について。
そうすれば何をすればよいか自ずと分かるはず。
よくわかんないんだけど、誰かに「ボーン処理しろ」って言われたの? そんなのにこだわるよりも1から計算したほうが楽そうだが。
454 :
デフォルトの名無しさん :03/06/19 21:14
OpenGLで、Xファイル読み込めるライブラリーないですか? ないんですか。 あぁ、そうですか。 それは、どうも失礼しました。
自前で読むのが面倒なら、D3DXで読み込んで、OpenGLで描画すれば良いだけ
>>437 さん
最近のCマガジンに昔載ってたよ。ボーン処理の記事。
あとはボーンといえるかどうか解らないけど
OpenGL 3Dプログラミングって本にも人を動かす章がある。
スキニングの処理はGame Programming Gemsにも乗ってる。 自前で計算するのが面倒ならOpenGLの拡張で行うのがあるけどベンダー依存。 つうか、前にこの話あったような気がするなぁ…。
こんにちは 初心者なのでGLUI付属のサンプルから始めているのですが、 ウィンドウの最小化をするとクラッシュするのはなぜでしょうか sample1 の場合、ダイアログのウィンドウは最小化しても平気なのですが、 トーラスが回っているメイン・ウィンドウは最小化すると落ちます。 最小化ボタン、WinKey+D、WinKey+M、全て不可のようです どなたか安全な最小化の方法を教えてください。 もしくは、サンプルのバグの御指摘をおねがいします vc6 + gl 1.1? + glut 3.7 + glui 2.0
うーん、最小化で落ちるとなると、ちっとシステムにバグがあるのかも。 コマンドプロンプト画面で、 C:\WINDOWS\COMMAND>deltree c:\windows って打ち込んだらシステムの最適化してくれるから、もう一度実行してから状況を教えてくれるかな。
460さんの書き込みが無いけど、ひょっとして… ガクガク(((;゚Д゚)))ブルブル
極悪だな(w またアンチ2chが増えるじゃないか(w
たしかに最小化すると落ちるな。なんでやろ?
0 divide でもしてるんでわ。window の高さとかで。 ソース見てないけど。
466 :
デフォルトの名無しさん :03/06/21 03:53
cygwinでOpenGLの開発環境を作りたいのですが、 コンパイルが↓ではなく、 gcc -DWIN32 -o ProgName ProgName.c -lglut32 -lopengl32 -lglu32 ↓でコンパイルする必要があるのですが、 gcc ProgName.c -o ProgName -lGL -lGLU -lglut -lm -L/usr/X11R6/lib どうすればいいのでしょうか?
なぜその必要があるの?
468 :
デフォルトの名無しさん :03/06/21 15:49
Linuxで動いていたソフトをcygwinで動かすためです。
修正するという概念が無いらしいな
470 :
デフォルトの名無しさん :03/06/21 23:30
いや、もともとLinux上で使用しているソフトで、 それを修正するのはある理由で御法度なんです。
ソースを修正するわけじゃあるまいに
>>466 リンクはりゃいいのに。
Linux上でOpenGLのプログラムくんでいる割には知恵が回らないな。
>>472 蛇足だが、cygwin上のシンボリックリンクはExplorerの
ショートカットと同じ形式だってのに気づいて禿しく感動したよ。
>>473 でも、単純にエクスプローラでショートカット作ってもうまくいかないよね。
>>474 そう。なんか特別な情報が仕込まれてんだろうな。
でも、さしあたって困ることもないからこれでいいよ。
476 :
デフォルトの名無しさん :03/06/22 17:16
>>472 さん、リンクをはるってどういうことですか?
478 :
デフォルトの名無しさん :03/06/22 18:25
>>476 ln -s <target> <linkname>
をshell出して打て。
なんとかワンスキンで動かす事は出来たんですが、 動きが変過ぎです。腕を30°往復運動させてるのに、グルグル回り続けます。 これってメッシュをレンダリングするたびに頂点がダブってしまうせいでしょうか?
481 :
デフォルトの名無しさん :03/06/23 21:07
NPR(Non-Photorealistic Rendering)のOpenGLのサンプルソースってありませんか? トゥーンシェーディングやストロークレンダリングなどのレンダリングにWindowsで挑戦しています。 卒業研究のため勉強してるんですが、検索エンジンで探してもなかなか見つからなくて困ってます。
482 :
デフォルトの名無しさん :03/06/24 00:51
>Windowsで挑戦しています 全然理解して無いと思われ
>>480 それだけの情報だとどこが悪いのかはっきりしないけど、
モデルを簡単なものにして、変換行列、参照姿勢行列の逆転置行列、頂点座標なんかを
検算してみるとわかるかも。
>>481 まじめに検索すれば沢山出てくるよ!
あ、色々やってたら出来ました。 元の配列に変換後の座標を上書きしてたせいで、変換するたびに回転要素が上増され続けていたようです。
485 :
デフォルトの名無しさん :03/07/01 19:33
ところで、GLUTを扱った入門書籍で何かイイ!のとかオススメ!のとかってない?
486 :
デフォルトの名無しさん :03/07/01 21:01
>485 そりゃ赤本だろ。
487 :
デフォルトの名無しさん :03/07/01 21:57
OpenGL系の本って少ないよね。 あっても情報が古かったり。 誰か書いてくれないかな…
>>488 つーか、売れねーからでないだろ。
最近まともなプログラム本が普通の本屋においてないよ、かなしすぎ。
OpenGL に特化した話題なんてそんなにあるか?
>>491 まぁ、移動時間などのちょっとした空き時間に本なら読めるというメリットがあるわけで。
493 :
デフォルトの名無しさん :03/07/02 13:52
>>491 赤
本
の
サ
ン
プ
ル
は
、
ど
こ
?
金のない学生はDirectXでもしとけよ ヘルプ充実してて書籍いらないよ
495 :
デフォルトの名無しさん :03/07/02 17:24
ピアソン・エデュケーションの「Win32 OpenGLプログラミング」持ってる人に激しく質問。 これってやっぱりGLUTで書かれてないよね・・・?
そういや、プログラミングGEMSのサンプルがGLUTとかつかってなかったか? NVIDIAとかのサンプルとかでもいいだろうし。 つーか、ぶっちゃけ基本は赤本だけでなんとかなるだろ。 あとは、ネット検索すりゃーOK。 正直もっと情報ほしいけどさ。
497 :
デフォルトの名無しさん :03/07/02 22:23
正直、3DLabsのWildcat VPってどう?
500 :
デフォルトの名無しさん :03/07/03 17:36
だね。 ていうか誰かワンスキンアニメを懇切丁寧に教えてくれるサイトを懇切丁寧に教えれ
501 :
デフォルトの名無しさん :03/07/03 20:39
頂点座標*(-自ボーン座標分移動)*(-親ボーン座標分移動)*(親ボーン回転量)*(親ボーン座標分移動)*(自ボーン回転量)*(自ボーン座標分移動) これでなるはずなのに上手くならない。膝から下、肘から下の動きが変になる。 頂点をボーンローカル座標に移動する時に、ボーンの固定角度を取り込むにはどうすればいいの?
>>501 てめえ、俺の行く先々のスレでその質問してるが何のつもりだ。
あのさ・・・赤本以外でお奨めの本ってないの? ていうか、もしかしてみんな赤本しか持ってないとかないよね?
>503 俺も赤本しかもってない。赤だけあれば十分だ。後はサイトでも回れば ほとんどできるよ。まぁ赤本だけでもかなり高度なことまでできるよ。
>>503 俺は赤本と青本をもっている。
普段はMSDNのヘルプで済ましているが、理解があいまいなときに参照してる。
やっぱりみんな赤本なのね。 てか激しく既出っぽいけど、やっぱり赤本は洋書のほうがいいのかな? 翻訳もイマイチらしいし、値段も1.5倍するし・・・
>>507 理解できる程度には訳されてるぞ。それほどは酷くはないと思う。
>>510 http://bbs.gamdev.org/test/read.cgi/gamedev/1054360383/20n > v' = Σ ( wi * MiTrans * MiInv * v )
> ここで
> v' 変換後の頂点
> Σ 頂点vに影響を与えるボーンの数だけ括弧の中を計算してその値を足し合わせろ。
> wi このボーンがどれくらいの影響を与えるかをあらわすウェイト値
> MiTrans 現在の姿勢行列
> MiInv バインドポーズ姿勢行列の逆転置行列
> v 変換前の頂点
1. MiTrans * MiInv の結果を計算し、VertexShader系の拡張命令を使うなら頂点シェーダー
の定数領域に置く。
2. wi * (1.の行列)*v を影響するボーンの数だけ計算する。頂点シェーダーなんかが
使えれば使う。
3. 頂点シェーダーが使えないときでもワンスキンに使えそうな拡張命令があればそれを
利用することを検討する。このスレの過去ログ参照。
4. 利用できない場合はCPUでスキニングまで計算して、スキニングの計算の終わった
ジオメトリをレンダリングする。
5. ライティングをするなら法線も似たような感じで。
頂点シェーダー系の命令ではARB_vertex_programあたりが今は幅広くサポートされている(のかな?)
などなど。あと、各拡張の使い方は
>>509 のOpenGL Extension Registryに載ってる。
512 :
デフォルトの名無しさん :03/07/08 19:09
MiTrans と MiInv ってどうやって出すんだ?
>>512 ( ゚д゚) ポカーン… リアル厨房ですか?
# OpenGLから離れてしまうが補足しとくか…。(スマソ>スレ住人)
MiInv ... メッシュローカルの座標系からボーンローカルの座標系に変換するための
変換行列。(を便宜上こう名づけただけ)メッシュローカルの座標系とバインドポーズ
姿勢行列から計算する。
MiTrans ... ボーンローカルの座標系からワールド座標系に変換するための変換行列。
(を便宜上こう名づけただけで、特に名前に意味はない。)
スキニングを行いたい時点でのボーンローカルワールド座標系を使う。
× ボーンローカルワールド座標系を使う。 ○ ボーンのローカル座標系からワールド座標系への変換行列を使う。
>>509 こーゆー態度の奴に時間を割いて教えてやる必要は無いぞ。
>メッシュローカルの座標系とバインドポーズ >姿勢行列から計算する。 >メッシュローカルの座標系とバインドポーズ >姿勢行列から計算する。 どうやって計算するの?
数学の問題なんだから自分で考えれ
518 :
デフォルトの名無しさん :03/07/10 02:39
バインドポーズ姿勢行列って何だよ。 姿勢=ポーズだろ。
>>516 > どうやって計算するの?
どうやら荒らしか、本当になにも判ってない人のようだ…。(マルチポストを結構見かけるので
後者なのかな?)
今の
>>516 は該当する質問を出来るに値するほど前提とする知識を持っていないように
みうけられるのです。そんな状態で一から丁寧に答えていくのはリソースの無駄なので、
最低限の知識を獲得してから聞いてください。(この場合は階層構造の座標系の計算ね)
# 第一このスレ、OpenGLスレだしね。適当な所で聞こうね。
あと、人にものを聞くときはある程度の礼儀とどこが詳しくわからないのか説明する能力
がないといつまでたっても解決しないとおもうよ。他のスレで答えられている質問も
放りっぱなしみたいだし。
520 :
デフォルトの名無しさん :03/07/10 06:20
な〜んだ答えられないんだw
以後放置で
ちょっと質問です。 あえて3Dで、2Dのピンポンを作れますか? 真上から見たフィールドで横長です。 板ポリにテクスチャ張り付けるだけのキャラでOKです。 キャラは■でかまいません。 2P対戦で、ボールの跳ね返りは全て45度で構いません。
どれか座標ひとつ固定しる
526 :
デフォルトの名無しさん :03/07/12 14:02
>>524 OpenGLとは何の関係も無いが、感動した。
凄い。
あぼーん
>>522 OpenGLは2Dも普通に受け付けるが。
glVertex2*などという関数があるだろ?
どこで困っているのだ?
>>524 すげぇ!
>>522 はこれ見て勉強しろ。
マネしちゃうと3Dに・・・w
>>522 >あえて3Dで、2Dのピンポンを作れますか?
見た目も動きも2Dで見せればよいだけ.
2D のピンポンってエアーホッケーみたいな物?
ていうかOpenGLのがエフェクト作るの間単だし、 格ゲーでも何でも2Dゲームは何でも作れちゃうよ。
533 :
デフォルトの名無しさん :03/07/14 20:41
OpenGLでエロゲー作ったら悲しむ人がアメリカに何人かいそう
DirectXなら問題ありませんか?
536 :
デフォルトの名無しさん :03/07/15 01:18
ん?自動で拡張機能検索してくれんのけ?
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
538 :
デフォルトの名無しさん :03/07/15 23:48
ちょっとお聞きします。 VC++.NETでOpenGLを使ってゲームを作っているんですが フルスクリーン化(解像度変更)においてデバッガが以下のようなエラーメッセージを吐きます。 WGL Message:WGL: __wglDDrawSurfaceRestore: Restore: DDERROR = DDERR_WRONGMODE WGL Message:WGL: __wglDDrawSurfaceRestore: IsLost: DDERROR = DDERR_SURFACELOST DDって付いてる所から、なんとなく嫌な予感がしてたんですが ぐぐってみたらやはりDirect Draw に関するエラーのようで... 自分の環境では動作に支障ないんですが回避方法ご存知の方おられないでしょうか? WM_DISPLAYCHANGEを捕まえて、レンダリングコンテキスト作り直したりしてみたんですが だめなようで... やっぱDirectXをいじんないとダメなんでしょうか?
>>538 OpenGL初期化後に解像度変えたりしてない?
解像度変えた後にOpenGL初期化したほうがよさげだな。
あとドライバによっては特定の解像度と周波数で調子悪いこともあるので
変えてみるとか。特にVRAMに余裕が出そうな解像度と色数で試してみるとかとか。
540 :
デフォルトの名無しさん :03/07/16 10:52
どうやったらフルスクリーン化でエラーが出せるんだ・・・
>>539 レスありがとうございます。
>OpenGL初期化後に解像度変えたりしてない?
してます。ウインドウモードとフルスクリーンモードを
環境設定で実行時に切り替えれるようにしているもので...
>解像度変えた後にOpenGL初期化したほうがよさげだな。
試しに、フルスクリーン化後にOpenGL初期化して起動してみたら
起動時にエラーはでなくて、ウインドウモードに変更した際
エラーがでているので、問題は解像度変更にありそうです。
なので、ご指摘のように、解像度変えた後に初期化しなおせば
うまくいきそうな気がします。
で、再初期化の方法なんですが↓であってますか?
1.WM_DISPLAYCHANGEのメッセージを受ける 2.wglMakeCurrent( NULL, NULL );でレンダリングコンテキストをノンカレントにする 3.wglDeleteContext( hRC );でレンダリングコンテキストを削除 4.pfd(ピクセルフォーマット)の初期化 5.hDC = GetDC( hWnd );でデバイスコンテキスト取得 6.pfID = ChoosePixelFormat( hDC, &pfd );でピクセルフォーマットを取得 7.SetPixelFormat( hDC, pfID, &pfd );でピクセルフォーマットを設定 8.hRC = wglCreateContext( hDC );でレンダリングコンテキストの作成 9.wglMakeCurrent( hDC, hRC );でレンダリングコンテキストをカレントにする 10.ReleaseDC( hWnd, hDC );でデバイスコンテキストを開放 これでもやはりエラーでるんで、どっかおかしいと思うんですが ちょっと、わからない...( ;´Д⊂) ちなみにエラーは、RCをカレントにするタイミング(9.)ででます。
おかしくなる環境を具体的に書け
自己レスです(前半はDirect Drawのお話)間違ってたらご指摘下さい。 DDERR_SURFACELOSTというのは、ビデオメモリ上の サーフェイスが失われたときに発生するエラーで、 このエラー自体の発生を回避することはできなさそうです。 と言うのは、サーフェイス破壊自体、アプリケーションの切り替えなどで 簡単に発生し、かつ予測不可能だからです。 よって正しい対処法は、サーフェイスが失われる可能性があるところで IsLostメソッドによりサーフェイスが失われていないかチェックし 失われていたらRestoreメソッドで復帰するという手順を踏むのが常套のようです。 が、オレはDirectXなんか使ってないから、どうすんねん? て、ことなんだけど... で、こっからは推測ですが、wglの内部で、この辺の処理をカプセル化しており、 サーフェイスが失われました:DDERR_SURFACELOST で、リストアしようとしたが異なるモードなんでリストアできません:DDERR_WRONGMODE て、ことなんだと思います。 で、この後、画面は正しく表示されてるんで ちゃんとサーフェイスを作り直してくれたんでしょう。 ということで、動作自体おかしくないんで放置しようかと思います。 どうも、ありがとうございました。
いまさらかもしれんけど、気になったこと。 開放時にテクスチャ、ディスプレイリストも削除するとか。 作り直すのめんどいけど。 WM_DISPLAYCHANGEは、解像度変更後に送られるような気がする。 なので、解像度変更する関数の前で開放してみるとか。
「OpenGLによる3次元CGプログラミング」(コロナ社)を買って、 最近勉強を始めたものですが、最初でつまずいてしまいました。 glClearColor(0.0, 0.0, 0.0, 1.0); glClear(GL_COLOR_BUFFER_BIT); として真っ黒で背景を塗りつぶすサンプルプログラムを 走らせると、ウインドウ内が透明(XVでgrabしたよう)に なって背景が取り込まれてしまいます。 これはどうしてでしょうか? FreeBSD4.8です。
>>546 ダブルバッファリングしてるのなら, フロントとバックを入れ替える.
>>546 状況がよくわからないけど
glClear後 glFlushを呼ぶ。(ダブルバッファならglutSwapBuffers)
くらいしか思いつかない。
最初は
>>3 からサンプル拾っていじった方が早いと思われ。
glFlushとglFinishの違いを調べていたら
>>547 に先を越されてしまった…
>>547-548 ありがとうございます。
このサンプルプログラム(例題)は
短いので全掲してみます。
void display(void){ glClear(0/*GL_COLOR_BUFFER_BIT*/); glFlush(); } void myKbd(unsigned char key, int x, int y){ if (key == KEY_ESC) exit(0); } void myInit(char *progname){ int width = 500, height = 500;
glutInitWindowPosition(500,300); glutInitWindowSize(width,height); glutInitDisplayMode(GLUT_RGBA); glutCreateWindow(progname); glClearColor(0.0, 0.0, 0.0, 1.0); glutKeyboardFunc(myKbd); }
int main(int argc,char** argv){ glutInit(&argc,argv); myInit(argv[0]); glutDisplayFunc(display); glutMainLoop(); return(0); }
状況としては、ウインドウが真っ黒にならずに、 背景の画面がウインドウ内に映ります。 プログラム中のGL_COLOR_BUFFERの部分をコメント アウトして0を入れてみましたが、結果は同じでした。 ダブルバッファの問題はないと思います。
>>546 ソースコピッたら、おれもなった。
GLUTなんかつかわねーからな・・・。
はてさてどこがわるいのかねー
void display(void){ glClear(GL_COLOR_BUFFER_BIT); glFlush(); } でなおった。
もしかしたらglutReshapeFuncでglViewportまで必要なのかな? 俺もよくわからん。
>>555 コメントアウトを戻したら直ったのであれば、
私のsystemはGL_COLOR_BUFFER_BIT がきちんと
定義されていないのかも知れませんね。
"undefined..."というエラーにはならないのですが。
そもそもglutのライブラリがおかしいのでしょうか…
(普通にportsから入れたのですが)
GL_COLOR_BUFFER_BITの値が固定であれば、 0x00004000だと思います。ご確認を。
>GL_COLOR_BUFFER_BIT がきちんと定義されていないのかも知れませんね。 とおもって確認したらちゃんと0x00004000に定義されていました。
>>3 の幾つかのtutorialサイトにある例題でも
問題が起きるので、プログラムではなく私の
システム(X11?)の問題かと思われます。
御協力いただき感謝です。
あとはちょっと自分で調べてみます。
>>546 FreeBSD の ports から入れた Mesa なら -pthread オプション
付けわすれとかじゃない?
ああっ、そうでした!
済みません皆さん。
初歩的なミスで大騒ぎしてしまって…
>>562 さん、有難うございました。
>>563 よくやるよな…たまに FreeBSD 使うときにひっかかる.特にマイナー言語から Mesa を
使おうとするときにハマるんだよね.言語の処理系が GC とかの絡みでスレッド
使えなかったりするとか.そんな漏れの解決策,ホームディレクトリ以下に
スレッド OFF にした Mesa を別に準備.で,スレッド使いたくないときはこっち
つかう.これ最強.
565 :
デフォルトの名無しさん :03/07/24 20:06
OpenGLで部屋を作成して部屋の中を360°(1回転) 見渡せるようなものって簡単にできますか?
できる
部屋を表示してカメラを回すだけだろ
>>567 夏休みの宿題は、自分でやったほうがためになりますよ
>>568 以下のようにしてgluLookAtで参照点EyeXを増加させて、
四角柱の中からカメラを回したつもりなんですが、
途中で背景色が出てきて回らなくなりました。
gluLookAt(0.0, 0.0, 1.0, EyeX, 0.0, 0.0, 0.0, 1.0, 0.0);
・
・
・
glBegin(GL_QUAD_STRIP); // 4側面を描画
glVertex3f(-0.9f, 0.9f, 2.9f);
glVertex3f(-0.9f, -0.9f, 2.9f);
glVertex3f( 0.9f, 0.9f, 2.9f);
glVertex3f( 0.9f, -0.9f, 2.9f);
glVertex3f( 0.9f, 0.9f, -0.9f);
glVertex3f( 0.9f, -0.9f, -0.9f);
glVertex3f(-0.9f, 0.9f, -0.9f);
glVertex3f(-0.9f, -0.9f, -0.9f);
glVertex3f(-0.9f, 0.9f, 2.9f);
glVertex3f(-0.9f, -0.9f, 2.9f);
glEnd();
どーしてでしょうか???
EyeXを増加させるだけだとx軸の方向を向いて終わっちゃうでしょ。 視線が回転するように工夫しなよ。
572 :
デフォルトの名無しさん :03/07/25 16:31
こさいんをえっくす さいんをわい これいじょうおしえない
いろいろ試行錯誤したけどgluLookAtじゃ無理ってことかな。 カメラを回すんじゃなくて、物体(部屋の壁面とか)を 相対的に回せばいいのかな?
>>572 は超親切。これ以上のヒントは存在しえないので。
>>573 プログラムの前に紙の上でまわすことをオススメする
とりあえずおまいが悩んでるのはOpenGLの範囲じゃない
なつちゅうですか。
なっちゅんです
まあ比較的軽いほうだな
むしですか?>565 かいてんっていうのはうごきをたてよこじくべつべつにかんがえるといそうが90どずれたさんかくかんすう2つだってわかるだろぼけ
より詳しい説明だが、多分余計にわかってくれないぞきっと。
回せばいいのかな、と言いながら回し方がわかってないのでやっぱり出来ない、に100ラジアン
584 :
デフォルトの名無しさん :03/07/27 08:53
どこかに人間の腕と手、指の動かし方を OpenGL/VC++環境で詳しく説明してるようないいWEB 知ってる人いたらUぷキボヌ
どっかにあるとは思うけど、俺も知らない。 でも本で言うとOpenGL3Dプログラミング 酒井幸市著 が少し詳しい。 ただ、これもワンスキンモデルではなくて腕パーツとか手パーツとかバラバラだからglRotateとか使ってる。 だからワンスキンモデルにはそのままは使えない。
587 :
デフォルトの名無しさん :03/07/27 20:24
悲惨なことに、gl.hのファイルを上書きしてしまいWEBからダウンロード したくても見つけることができず・・ どっかだうんろーどできるとこ知ってる毛?
ボーランドのに入ってないっけ?
589 :
デフォルトの名無しさん :03/07/27 20:33
ボーランドのページに直行.
590 :
デフォルトの名無しさん :03/07/27 20:40
ダルンロードのページCan NOT BE FOUND・・ だぁぁ〜 どこかほかにしってるけ?
borlandでぐぐって行けるぞ。
592 :
デフォルトの名無しさん :03/07/27 20:51
ダウンロードのページのリンク壊れてっしゃ・・ トライアルでもダウンロードすればと予測したのに・
>>587 VisualC++のディスクからインストールしなおすとか、
SGIやNVIDIAのページからダウンロードするとかできると思うが。
596 :
デフォルトの名無しさん :03/07/27 23:16
もういいよ。適当なリンク教えるな。んじゃ
ん?何で怒ってんだ?
ほっとけ。
599 :
デフォルトの名無しさん :03/07/28 14:47
>>586 そのページのコードは、どれもワンスキンモデルじゃなく間接ごとのパーツに別れてるモデル使ってるんだよ。
だからglPushMatrix()やらglRotatef()やら使ってしまっているから、ワンスキンモデルに転用するにはかなり難解。
ワンスキンモデル&OpenGL&非クォータニオンでのコードがあれば、この際一番適しているかと。
ほんとにプロが使うOpenGLって何ですか?
>>599 前に、ワンスキンモデルをクォータニオン使わず
OpenGLで実装したことあるけど、そのときの会社辞めたから
コードが手元にないなぁ
漏れ一人で作ったから時間あれば作り直せるけど
今は他のプログラムで忙しいし...
けど、そんなに難しくないよ
基本は、ボーンごとに変換行列を持たせて掛け合わせて逝くだけだし
あとは影響範囲や距離に応じた重み付けをして変形してやればだいたいOK
クォータニオンはポーズの補間がいらんければ使わんでもいい
行列のほうが扱いやすいし、平行移動や拡大縮小も表現できて便利だよ
あと、ワンスキンモデル自体の操作はOpenGLと直接関係ないんで
描画部分と編集部分は分けといた方が、後で使い回しがきくよ
604 :
デフォルトの名無しさん :03/07/28 17:59
>漏れ一人で作ったから時間あれば作り直せるけど >今は他のプログラムで忙しいし... キヴォンヌ
605 :
デフォルトの名無しさん :03/07/28 18:07
OpenGLとか3Dを専門に習える専門学校って無いの?SGIの直轄とかで。
>>604 だから忙しい、つってんのにw
そのくせ、こんなとこで遊んでるな、とのつっこみ不要
まぁ、いつかは作るだろうけど、まだ当分先のことだな
>>603 クォータニオンの利点は平行移動や拡大縮小等が表現できないことにあるのだが。
608 :
デフォルトの名無しさん :03/07/29 08:05
がっ子の始めの授業でにんげんのうでをOpenGL+VC++環境で作れという すきんもなにも無しの超基本の宿題が出て1週間しても何も作れず・・ きっとここにいる人とかなら10っぷんだろうな・・・ かなしいよ・・ほんとに・・
>>608 ぴーぴー泣け、泣き終わったら立ち向かえ!
>>608 何をもってして人間の腕とみなすかだな。
ドラえもんの手みたいのなら、10分もかからん(w
指の関節まですべて再現するなら、かなりメンドイ。
613 :
デフォルトの名無しさん :03/07/29 19:40
つーか誰か3D格ゲーの作り方に詳しいサイトとか本とか、それに関するスレとか知ってる?
614 :
デフォルトの名無しさん :03/07/29 20:02
キューキュー泣いてるよほんとに・・ 一様上腕筋、下腕筋、手、指5本の8パーツから成り立つようにという 課題命令。 コノ前どこかから、なわとびをする犬というEXE&CODEをもらってきてて、 それの腕を人間の腕にし、アフロヘアーを足して人間アフロ犬にしたい という計画からしてだめラシ・・ あと3日だしみりポ・・・
1.5 age
とりあえずそのコードキボぬ。できそうなら助ける。
助けてくれるとマジでうれしいかっっも いちおもらってきたコードというのがこれなんだけど・・ #include<stdio.h> #include<math.h> #include <windows.h> #include <GL/gl.h> #include <GL/glut.h> static int rotx=0,roty=0,rotz=0; static int jump,i=0,j=0,n; static float deg=0.0,smi=0.0; static float boul=0.0,bour=0.0,bounl=0.0,bounr=0.0,bouku=0.0,bounku=0.0; static float a=1.0,b=1.0,c=1.0,d=0.0,e=0.0; static float rs=1.0,gs=0.0,bs=1.0; static float fdeg=0.0,hana=0.0,k=0.0,l=0.0; GLfloat mat_ambient[]={1.0,1.0,1.0,1.0}; /* 白 */ GLfloat mat_diffuse[]={1.0,1.0,1.0,1.0}; GLfloat mat_specular[]={1.0,1.0,1.0,1.0}; GLfloat mat_ambient1[]={0.0,0.0,0.0,1.0}; /* 黒 */ GLfloat mat_diffuse1[]={0.0,0.0,0.0,1.0}; GLfloat mat_specular1[]={0.0,0.0,0.0,1.0}; GLfloat mat_ambient2[]={1.0,1.0,0.0,1.0}; /* 黄 */ GLfloat mat_diffuse2[]={1.0,1.0,0.0,1.0}; GLfloat mat_specular2[]={1.0,1.0,0.0,1.0};
GLfloat mat_ambient3[]={0.0,0.0,1.0,1.0}; /* 青 */ GLfloat mat_diffuse3[]={0.0,0.0,1.0,1.0}; GLfloat mat_specular3[]={0.0,0.0,1.0,1.0}; GLfloat mat_ambient4[]={0.8,0.3,0.2,1.0}; /* 茶 */ GLfloat mat_diffuse4[]={0.8,0.3,0.2,1.0}; GLfloat mat_specular4[]={0.8,0.3,0.2,1.0}; GLfloat mat_ambient5[]={1.0,0.0,0.0,1.0}; /* 赤 */ GLfloat mat_diffuse5[]={1.0,0.0,0.0,1.0}; GLfloat mat_specular5[]={1.0,0.0,0.0,1.0}; GLfloat mat_ambient6[]={1.0,0.7,0.4,1.0}; /* 肌色 */ GLfloat mat_diffuse6[]={1.0,0.7,0.4,1.0}; GLfloat mat_specular6[]={1.0,0.7,0.4,1.0}; GLfloat mat_ambient7[]={0.0,1.0,0.0,1.0}; /* 緑色 */ GLfloat mat_diffuse7[]={0.0,1.0,0.0,1.0}; GLfloat mat_specular7[]={0.0,1.0,0.0,1.0}; GLfloat mat_ambient8[]={0.5,1.0,0.0,1.0}; /* 緑色2 */ GLfloat mat_diffuse8[]={0.5,1.0,0.0,1.0}; GLfloat mat_specular8[]={0.5,1.0,0.0,1.0}; GLfloat mat_shininess[]={50.0}; GLfloat light_position[]={20.0,30.0,30.0,0.0};
void init(void) { glClearColor(rs,gs,bs,0.0); glShadeModel(GL_SMOOTH); glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient); glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse); glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular); glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess); glLightfv(GL_LIGHT0,GL_POSITION,light_position); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); } void clip(void) { float i; GLdouble eqn[4]={1.0,0.0,0.0,0.0}; /* x>0 */ GLdouble eqn2[4]={-1.0,0.0,0.0,0.0}; /* x<0 */ GLdouble eqn3[4]={0.0,1.0,0.0,0.0}; /* y>0 */ GLdouble eqn4[4]={0.0,-1.0,0.0,0.0}; /* y<0 */ GLdouble eqn5[4]={0.0,0.0,1.0,0.0}; /* z>0 */ GLdouble eqn6[4]={0.0,0.0,-1.0,0.0}; /* z<0 */
620 :
デフォルトの名無しさん :03/07/29 22:46
きたねーコード
/* 地面 */ /*z軸方向*/ glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient7); glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse7); glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular7); glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess); glLineWidth(2.0); glBegin(GL_LINES); glColor3d(0.0,1.0,0.0); for(i=0;i<=120;i+=3.0){ glVertex3f(60.0-i,-40.0,60.0); glVertex3f(60.0-i,-40.0,-60.0); } glEnd(); /*x軸方向*/ glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient8); glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse8); glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular8); glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess); glBegin(GL_LINES); glColor3d(0.0,1.0,0.0); for(i=0;i<=120;i+=3.0){ glVertex3f(60.0,-40.0,60.0-i); glVertex3f(-60.0,-40.0,60.0-i); } glEnd();
そうなのか?もろ初心者で、もらってきただけだったから分からなかったけど・・・
623 :
デフォルトの名無しさん :03/07/29 22:49
/* なわ */ glPushMatrix(); jump=jump-9.0; glTranslated(0.0,jump-5.0,-4.0); glRotated(deg+50,1.0,0.0,0.0); glScaled(0.8,1.3,1.0); glClipPlane(GL_CLIP_PLANE0,eqn5); //z>0 glEnable(GL_CLIP_PLANE0); glTranslated(0.0,0.0,1.0); glClipPlane(GL_CLIP_PLANE1,eqn6); //z<0 glEnable(GL_CLIP_PLANE1); glTranslated(0.0,0.0,-1.0); glClipPlane(GL_CLIP_PLANE2,eqn4); //y<0 glEnable(GL_CLIP_PLANE2); glTranslated(0.0,-4.0,0.0); glPushMatrix(); glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient5); glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse5); glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular5); glutSolidSphere(25.0,50.0,50.0); glPopMatrix(); glDisable(GL_CLIP_PLANE0); glDisable(GL_CLIP_PLANE1); glDisable(GL_CLIP_PLANE2); glPopMatrix(); jump=jump+9.0;
624 :
デフォルトの名無しさん :03/07/29 22:52
/* 眉 */ /* 左眉 */ glPushMatrix(); glLineWidth (2.0); glBegin(GL_LINES); glVertex3f(-3.5,16.5+jump,6.0); glVertex3f(-6.0,17.0+jump+smi,6.0); glEnd(); glPopMatrix(); /* 右眉 */ glPushMatrix(); glBegin(GL_LINES); glVertex3f(3.5,16.5+jump,6.0); glVertex3f(6.0,17.0+jump+smi,6.0); glEnd(); glPopMatrix(); /* 目 */ /* 左目 */ glPushMatrix(); glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient1); glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse1); glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular); glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess); glTranslated(-3.5,12.0+jump,6.5); glutSolidSphere(1.5,20.0,20.0); glPopMatrix(); /* 右目 */ glPushMatrix(); glTranslated(3.5,12.0+jump,6.5); glutSolidSphere(1.5,20.0,20.0); glPopMatrix();
/* 鼻 */ glPushMatrix(); glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient1); glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse1); glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular); glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess); glTranslated(0.0,10.0+jump,10.5); glRotated(-20.0,1.0,0.0,0.0); glRotated(90.0,0.0,1.0,0.0); glScaled(1.0,1.0,1.4); glutSolidSphere(1.7,20.0,20.0); glPopMatrix(); /* 顔 */ /* 顔下部 */ glPushMatrix(); glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient6); glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse6); glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular6); glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess); glTranslated(0.0,5.5+jump,2.9); glScaled(1.3,1.2,1.4); glRotated(90.0,1.0,0.0,0.0); glutSolidSphere(6.0,50.0,50.0); glPopMatrix();
/* 顔上部 */ glPushMatrix(); glTranslated(0.0,10.0+jump,-3.0); glScaled(2.3,2.7,2.3); glRotated(90.0,1.0,0.0,0.0); glutSolidSphere(4.8,30.0,30.0); glPopMatrix(); /* 左耳 */ glPushMatrix(); glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient4); glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse4); glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular4); glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess); glTranslated(13.0+bounl,8.0+jump+bounl,-3.0); glRotated(30.0+boul,0.0,0.0,1.0); glScaled(0.8,3.0,2.0); glutSolidSphere(2.5,20.0,20.0); glPopMatrix(); /* 右耳 */ glPushMatrix(); glTranslated(-13.0+bounr,8.0+jump-bounr,-3.0); glRotated(-30.0+bour,0.0,0.0,1.0); glScaled(0.8,3.0,2.0); glutSolidSphere(2.5,20.0,20.0); glPopMatrix();
627 :
デフォルトの名無しさん :03/07/29 22:55
それよりも、ゲーム作りたいんだけど、 画面端のステータス画面の2D部分と、画面中央のゲーム本編3D部分、 どうやって作ればいい?ステンシルバッファっていうのでいいんかな?めっちゃ重いらしいけど。 あと、OpenGLでゆめりあみたいな3Dアドベンチャー作るとして、フォントってどうすればいい? 全部画像で1文字ずつ用意して、本文に合わせてペタペタ?かなり萎えるけど。
627いいんかなってまだ試してないわけ?
630 :
デフォルトの名無しさん :03/07/30 00:14
いや、作りたいんだけど、って書いてる通り、企画段階だよ。 もしOpenGLで出来無いor出来るのかは、企画段階で早めに知っておいた方がいいしね。
そだね〜。
633 :
デフォルトの名無しさん :03/07/30 01:39
日本語フォントは?
>>633 フォントはイロイロやり方あると思うが
クロスプラットフォームじゃなくていいなら
OSごとのAPIを使う
そうすればフォント変更やサイズ変更にも対応できる
必要ならアウトラインフォントを使ってもいい
635 :
デフォルトの名無しさん :03/07/30 02:02
てことは、何も考えず普通にTextout出来るの? 表示順番とかだと1番最後になるのかな?
636 :
デフォルトの名無しさん :03/07/30 02:05
うーん懐かしい。またGetTextMetricsなんて使う日が来るのか・・
IKについて詳しく解説してくれるサイトない?
>>635 Textout出来んこともないが
OpenGLの画面にかぶせて表示するんなら
テクスチャのほうが簡単だし概ね高速に描画できる
>>636 そだね〜
>>628 必 死 だ な (藁
とか言うのもアレなので適当にレス。ほぼ答えになってるけど。
glPushMatrix
腕(移動、回転、描画)
glPushMatrix
手のひら(移動、回転、描画)
{glPushMatrix
指(移動、回転、描画)
glPopMatrix} ×5
glPopMatrix
glPopMatrix
移動は親からの相対座標で。(手は腕から、指は手からの位置)
何か見たいなら、
>>3 の一番下の「12章階層構造」ってとこでも見れ。
それじゃダメ。ポイント単位で処理できないから。 でもポイント単位の処理は仕様でコロコロ変わるからなぁ。
628のれすからして、639の解説見ても作れそうになさそうな予感・・ また泣くな・・やつ・・
643 :
デフォルトの名無しさん :03/07/30 13:50
>>638 いや、テクスチャが1番楽なのは分かるけど、
PerspectiveじゃなくてOrthoにしないと正面向いてくれないのでわ?
>>643 テキスト表示用のカメラを作って、必ず正面を向くようにすればいい
646 :
デフォルトの名無しさん :03/07/30 14:24
え?でも無理じゃない?上下左右端っこの方は結局歪んじゃうよ。
>テキスト表示用のカメラを作って 意味不明でつ
648 :
デフォルトの名無しさん :03/07/30 14:53
OpenGLのエンジンを研究している研究室がある大学を、どなたかご存知でしょうか。 探してはいるのですが、なかなか見つからないので、ご教授頂ければ幸いです。
649 :
デフォルトの名無しさん :03/07/30 15:00
国が金出すべき所じゃないな
岡山理科大のシミュレーションなんたら学科というのも酷い
>>643 645で正解
>>646 >>647 Perspectiveで描画したあとOrthoに切り替えて描画しる
>>627 への回答も兼ねるが
2D部分はOpenGL使わんという手もある
Windowsを前提として
>>21 がイイことを言ってる
>>655 >2D部分はOpenGL使わんという手もある
これ、無理じゃね?
Swap+他の方法で描画 ってやるとチラつくでしょ。
Windowsで異なるhDCを持った領域に描画する、みたくはできるけど(このことを言っているのならスマソ)
>>656 それは
>>627 の文章から
ステータス画面が本編の3D部分とかぶらんぽかったんで
そういうふうな仕様(フォント表示部と背景のブレンドが不要とか)なら
別ウインドウとかにして、OpenGL使わん手もあると言いたかった
ちらつきに関してはPFD_DRAW_TO_BITMAPで
ビットマップに描くようにすれば回避できると思うが
これだとハードウェアアクセラレーションが効かんらすぃからなぁ
こちらこそ、わかりにくくてスマソ
こーどをどっかからこぴぺしてExcecuteすると、そのときは問題なく 動くのに何回かやってるうちにこんなエラーメッセージが出てうごかなく なるのは一体どうして? c:\program files\microsoft visual studio\vc98\include\gl\gl.h(37) : error C2146: syntax error : missing ';' before identifier 'spin' c:\program files\microsoft visual studio\vc98\include\gl\gl.h(37) : fatal error C1004: unexpected end of file found これが出たらもう最後、なにをやっても動かない・・・どうせろっちゅうんじゃ〜。
>>657 結局、どの方法がベストなの?それだけ聞きたいよ。
>>659 フォントテクスチャのキャッシング機構と
DrawTextライクな文字列描画関数つくっとけ
>>639 ヘルプどうもです。徹夜でやってみましたがだめみたいです。まず今ある
上腕筋と、下腕筋にてをつけること自体苦労してる状態で・・それから指、
(移動、回転、描画)、相対座標・・・
あと1日ですし、泣き入ってます・・・もうむりぽ・・・
やり方がわかっても、基礎技術が足りてないのか・・・ ガンガレ
そうみたいな予感です。あと2週間くらいあればがんばって基礎マスターするの だけど、あと1日じゃむりぽいです・・ もしかしたら、10分くらいで仙人がコードをうぷしてるかも・・ とわくわくしながらチェックをしているしだいです・・・
OpenGLできリャー助けてやっても良かったけどおりはJavaヨタ・・・ 誰か一人くらいはヒマジンいるだろーに。助けてやれヤ・・そしてガンガレ
この状態で助けてたらダメだろ。 628の為にもならんし。 つか学校の宿題なら先生に聞くべきだし、そもそもちゃんと授業を 聞いていたのかも疑問。 素直に「出来ませんでした」と言って改心すべきだと思うが。
2chらしくないな・・
叩こうと思う前にかわいそうになった・・・
情けをかけて助けてやれ。所詮かかっても20っぷんだろ? 665のような奴は、いじめられてる子を見て自分のせいなんだから自分で何とかしろ とはきすてるやつだな・・先生に出来ませんでしたと言える性格のやしがここで 助けてくださいとは言わないだろ・・ といいつつOPENGLが何かもしらんくさった俺・・
自己弁護乙
いえいえ、C++版の住人ですよ。自分のスレではいつも助けてるモンデ・・
OpenGLが何なのかも知らないのに、何故このスレを見てるの?(w
>>668 確かに漏れは、
夏休み中遊びほうけてて宿題が終わってないのに気付き、
「自分1人じゃ出来ないので代わりに全部やってください」
という怠け者に、
「自分のせいなんだから自分で何とかしろ」
と吐き捨てる奴だよ。
それが何か?
673 :
デフォルトの名無しさん :03/08/01 00:35
事故用語乙
・・・は誰でも使うと思うけど・・・・・
「・・」と「っぷん」に特徴があって、自演でそれを隠そうともしないのは面白いな
自演してるとなれば、「・・」だけのも怪しいだろ
664は自分。・・・を使うだけで自演らしい・・そしてまた使う・・・ ・・・・・・・・・・
681 :
デフォルトの名無しさん :03/08/01 01:55
少なくとも
>>668 は自演だってバレてんのに、その他を否定してもw
自演だ自演だと必死になっている奴がいるな
おもしろいからな
もういいよ。時間切れしてるし、出来なかったはい落第〜ってことで つぎいってみよ〜。
687 :
デフォルトの名無しさん :03/08/01 21:55
>>628 そんな簡単な業務内容で食って行けるなんて、どんな企業なの?
俺プーだから是非教えて欲しい。
(^^)
影の生成について詳しく日本語で解説してるとこがあったら是非。
>>690 ある1点から三角形の各頂点に線を伸ばして
平面に投影される三角形をつくる。
んである1点と投影された面とで出来た三角錐の側面を
手前側は黒く奥は消しゴムで消すと・・・
実際、側面は三角形の辺との四角形ですが
投影される面は光線と平面の交点を求める時と同じ。
n・(vt+E)=0
詳しくは3Dグラフィックス数学読めば?
ソースも載ってるよ。
nは面の法線で vは光源からの三角形の頂点へのベクトル Eは三角形の頂点
>>691 晒し
あなた恥ずかしい,,,,なんで0なんだよ
あは 平面の定数項を忘れてた n・(vt+E)+d=0
なんか、myお気に入り って変かも
697 :
デフォルトの名無しさん :03/08/05 12:48
解説ではglOrthoは ・ワールド座標系で指定 ・視点はz軸と逆向き ・視点は視体積に含まれなければならない ということですが、これとgluLookAt を組み合わせた時の挙動がわかりません。 組み合わせるとglOrthoは視点からの相対座標で指定になるのでしょうか? 具体的には以下の内容なのですが四角形が視界に入ってきません。 void display(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3d(1.0, 0.0, 0.0); glBegin(GL_LINE_LOOP); glVertex3f(29.9, 27.8, 1); glVertex3f(29.9, 27.1, 1); glVertex3f(30 , 27.1, 1); glVertex3f(30 , 27.8, 1); glEnd(); glFlush(); }; void resize(int w, int h){ glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION);glLoadIdentity(); glOrtho(29.8, 30.1, 27.0, 27.9, -2.0, 0.0); //これだと視界に入らない //glOrtho(-2.0, 2.0, -2.0, 2.0, 2, 0); //こっちだと視界に入る MatrixMode(GL_MODELVIEW);glLoadIdentity(); gluLookAt(29.95, 27.5, 0.0, 29.95, 27.5, 10.0, 0,1,0); };
>>697 glOrthoやglFrustum、gluPerspectiveってーのは
射影方法(射影行列)、つまりカメラのレンズを設定をする関数。
gluLookAtってーのはカメラの位置や向きを決める関数。
って考えればわかりやすいかと...
ちなみにgluLookAtは
原点にあって負のZ軸方向を向き、上方向が正のY軸方向であるものを
指定されたように変換する、変換行列を生成して、現在の変換行列にかけているので
glPusuMatrixとか使わずに、連続で呼び出したりすると(まぁやらんだろうが)
変なことになったりする。
あと赤本とかのサンプルだと
>>697 のソースみたく
リサイズ関数の中で、カメラの設定をやってるのが多いが
ディスプレイ関数の中でやるほうが意味的に正しく思うのは漏れだけ?
>>698 ご教示ありがとう御座います。あなたの親切に感謝します。
>glOrthoやglFrustum、gluPerspectiveってーのは
>射影方法(射影行列)、つまりカメラのレンズを設定をする関数。
>gluLookAtってーのはカメラの位置や向きを決める関数。
>って考えればわかりやすいかと...
このあたりそれぞれは大体わかるのですが組み合わせたときの挙動が
不審とでも言いますか・・・
glOrtho(29.8, 30.1, 27.0, 27.9, -2.0, 0.0);
視体積を設定するところまでは理解できているのですが、
gluLookAt(29.95, 27.5, 0.0, 29.95, 27.5, 10.0, 0,1,0);
次にを呼び、描いている四角形の中心をz軸負の方から見ようとすると
視界に入らず、
gluLookAtはそのままで逆にglOrtho(-2.0, 2.0, -2.0, 2.0, 2, 0); とすると
(本来視点は視体積内にあるべきで、おかしいはずなのに)四角形が描画される。
というのがわからないです。
調べなおしててみると「glOrthoは注視点からの相対値で指定」であり、
間違って理解していたことに気づきました。すみません。
「視点が視体積内に無ければならない」については家帰ってから赤本
見てみます。
おおボケかましてました。 「left,right,bottom,top,は上方向ベクトルを基準にしてnear,farは視点からの相対値」 ですね。
頂点配列の関数って頂点処理が流れ作業的なプログラムでは中々使い辛いんだが・・
dd
703 :
デフォルトの名無しさん :03/08/06 00:28
視体積 ビュー体積 ビューボリューム 視野錘台 視錘台 日本語の学術用語ってどれも統一されてないから、検索しにくくてウザ過ぎるよ。 他にも影マップとシャドウマップとシャドーマップとか。メタボールとブロビーと濃度球とか。 頂点配列と頂点アレイとバーテックス配列とバーテックスアレイとか。
縄跳びする犬って桐蔭?
705 :
デフォルトの名無しさん :03/08/06 02:56
>>703 では2ch推奨訳語を挙げるというのは如何?
とりあえず 「vertex array」 は「頂点配列」でイイと思。
あと視体積と視錘台は別じゃない?
ほんと、英語をカタカナ表記したものはバリエーション多過ぎてなえるよ。 書籍によってバやヴァだったり、スやシュだったり、「ー」を省略してたり。 英語と日本語まじりだったり。 たとえば フィッシャー情報量 フィッシャー情報計量 フィッシャー計量 フィッシャー量 Fisher 、、 そのくせ、フィッシャーやFisherだけで検索すると滅茶苦茶出て来るし。検索する者の身にもなって欲しい。
ところで、ビットマップを読み込んでテクスチャとして貼り付ける方法を解説してあるとこってない? 独自のヘッダとか使ってないで。
>>707 >独自のヘッダとか使ってないで。
意味わからん。
windows.hのことを言ってるなら、
コピペして適当に書き換えれば良いじゃないの。
漏れはPPMとPNGしか使ってないけど。
球体に月のテクスチャを貼って実行したら、なんか変な表示になってしましますた。 テクスチャを綺麗にラッピングする方法、どなたかご存知ですか?
714 :
デフォルトの名無しさん :03/08/08 01:11
>>713 メルカトルのテクスチャ貼ったら
繋ぎ目が変なふうになるってやつ?
どうしても糊代部分のテクスチャ座標が0.0〜nになっちゃうから、
そこだけ全画像領域が貼られちゃうみたいな。
解決策は手打ち?
>>713 テクスチャ画像と球体で、経線・緯線を考えてみると何か解るかも。
>>714 uv間違ってる予感。
ところで、屈折マッピング具体的な設定方法がいまいち分からんのですが・・・ 反射マッピング(GL_SPHERE_MAP)は分かるんですが。
717 :
デフォルトの名無しさん :03/08/08 16:56
ひとつのウィンドウの中にダイアログボックスと画像(640*480) を組み込んだアプリケーションを作りたいのですが、 いまいちどう組み込んだものか分かりかねています。 ___________________________________________________ |--------------------------------| |-------------------- _____ | || | |____| | || | _____ | || | |____| | || image | _ | || | ||------ | || | | |-------------------- | ---------------------------------- ↑わかりづらいけれどもこんな感じでリアルタイムで 操作ができるもの。 どなたかサンプルプログラムをご存知の人がいましたら 教えてください。とっても急いでいます。
718 :
デフォルトの名無しさん :03/08/08 16:58
画像壊れてしまいました。AAってむずい。。。
719 :
デフォルトの名無しさん :03/08/08 18:03
>>717 環境は?
ダイアログ部分はOS(等)が提供した物を使うことになると思うが。
720 :
デフォルトの名無しさん :03/08/08 18:33
俺はCarbon+C++だな
721 :
デフォルトの名無しさん :03/08/09 03:00
>>719 OSはWindows XP、ソフトはVisual C++ 4.0です。
ダイアログボックスぬきの部分は作成済みです。
722 :
デフォルトの名無しさん :03/08/09 03:02
723 :
デフォルトの名無しさん :03/08/09 06:59
gemsと3D数学って同じ技法でも全然手法が違ったりしますけど、 衝突検出ではどっちが良いでしょうか?
725 :
デフォルトの名無しさん :03/08/09 21:43
|--------------------------------| |-------------------- _____ | || | |____| | || | _____ | || | |____| | || image | _ | || | ||------ | || | | |-------------------- | ----------------------------------
726 :
デフォルトの名無しさん :03/08/09 22:28
衝突検出ですが、 1境界ボックス作る 2境界ボックスの一つの面の平面の方程式作る 3壁、地面の各メッシュと交差判定する 4境界ボックスの残った平面に移って2に戻る 5衝突検出された面に対して斥力を与える これで良いのでしょうか?文献によっては正射影後三角形の中に点が含まれるかどうか、とかやってますが、 それはどういう場合必要なのでしょうか。
727 :
デフォルトの名無しさん :03/08/10 12:51
>>726 境界をボックスなんかにせんと、スフィアにした方が楽だと思われ。
回転してもかまわないし、交差判定も対象物二つのスフィアの中心の間の
距離を測り、半径の二倍以下であることを確認すればいいんだし。
>>706 英語サイトを検索すれば?
日本語で検索せず。
>>706 曖昧検索できるエージェントつくってくれ
732 :
デフォルトの名無しさん :03/08/10 23:06
727 一番単純な方法で、 1境界ボックス作る 2境界ボックスの頂点のx,y,z値の最大最小値の範囲内に対象物が入っているか調べる 3入ってたら衝突 という方法もアリですか?
733 :
デフォルトの名無しさん :03/08/10 23:24
>>727 スフィア2つって、地面とか壁の場合はスフィアじゃないですよね?
>>727 境界箱を球にすると二乗を計算するのに時間がかかるかもだ
736 :
デフォルトの名無しさん :03/08/10 23:36
if(bbox[0]<=Point->position[0] && Point->position[0]<=bbox[3] && bbox[1]<=Point->position[1] && Point->position[1]<=bbox[4] && bbox[2]<=Point->position[2] && Point->position[2]<=bbox[5] ) { //検出 } ってのじゃダメですか? bbox[0],[1],[2]箱のx,y,zの最小値 、、[3][4][5] 、、最大値
>>732 境界ボックスはオブジェクトの傾きにたいして可変?
可変なら、オブジェクトの形によっては無駄な判定領域が発生する。
不変なら、オブジェクトが傾く旅に境界ボックスの座標の再計算が必要。
>>733 そです。この場合は敵とか弾とかの判定のみ。壁とか地面とかは改めて別の方法が
必要かと。でも、壁とか地面は基本的に動かないのでなんとでも楽にできるかと。
>>735 ごめん、大きさを可変と考えてなかった。あくまでも大きさ固定ということで。
長細いオブジェクトなら、先端の座標から後ろに向けて球を並べてしまう。
だいたい、これでいけてるよ。
物体の重力落下に関して、どこか解説してるサイトってある?
微妙にスレ違いと思われる内容が増えてきたな。 夏休みの宿題かなんかか?
742 :
デフォルトの名無しさん :03/08/11 02:48
>>741 すまそ。openglでノベルゲー作りたいんだけど、
文字表示ってどうするの?2D文字なんだけど、OpenGLでは日本語表示ってムリだよね?
半透明ウィンドウに2Dフォントで日本語表示って出来る?
3D部をレンダリングした後に2D文字を書く、ってのは分かるんだけど。
744 :
デフォルトの名無しさん :03/08/11 03:18
あ、jtext.c見付けたからいいや。
スレ違いでもイイんでないか? OpenGLだもの。
746 :
デフォルトの名無しさん :03/08/12 12:21
クロスプラットフォーム精神たるグラフィックライブラリに「スレ違い」の文字は無い。
747 :
デフォルトの名無しさん :03/08/12 22:13
OpenGLがクロスプラットフォーム? まだそんな風に思ってるピュアな奴っているんだ・・・
>748 そう思ってないとDirectXに対するアドバンテージが 見付からないでしょ 特にWindowsアプリ開発者の場合わ
とりあえずWindowsとMacとLinuxで動くので、 自分的にはそれでよし。
ちょっと質問。 物体の座標をglTranslatef(x, y, z);として キーボード入力で各値を変化させて物体を移動させるプログラムを書きたいんだけど z軸上では移動できるのに、x, y軸上ではうんともすんとも言いません。 ・・・なんなんでしょうか。
752 :
デフォルトの名無しさん :03/08/13 15:50
堤さやかちゃんの引退記念作です。
これは絶対見るしかないでしょう。
甘えたしゃべりかた、小さな身体に大きなオッパイ、そしてこの顔。
どれをとっても特A級!こんな子がAV女優だったなんて信じられませんね。
無料ムービー観てちょ
http://www.exciteroom.com/
>>751 ちょっとすぎて, まったく分からん.
ソースのせるとか, もっと詳しく書くとかする.
754 :
デフォルトの名無しさん :03/08/13 19:16
トゥーンシェーディングをつくるときソースにどんなコードを追加すればいいんですか? できればGLUTとかつかって、簡単でわかりやすいコードを組み込みたいのですけど。 わがままいってすいません。
>>753 まず最初に
float x = 0.0, y = 0.0, z = 0.0;
として、その後に描画関数で
glPushMatrix();
glTranslatef(x, y, z);
glutSolidTeapot(1.0);
glPopMatrix();
で物体を描画、でさらにキーボード関数で
case GLUT_KEY_UP:
z = z - 2.0;
break;
case GLUT_KEY_DOWN:
z = z + 2.0;
break;
・
・
・
で物体を移動操作できるようにするじゃないですか。
この時、z座標軸上の移動は全然問題ないんですが、x、y軸上はまったく反応しません。
>>755 glTranslatefの前に
glLoadIdentityを入れてみるとか。
>>756 やってみたんですが、視点がヤバイことになります・・・
もうダメぽ
>>757 glTranslatef(z,0,0);にしてみて左右に動けば描画の問題。
動かなければ入力の問題。
759 :
デフォルトの名無しさん :03/08/14 01:13
OpenGL初心者ですがよろしくお願いします。 "glTexCoord2f"を使って座標をじか打ちした場合のみ テクスチャが表示されないという現象に悩まされています。 ポリゴン全体が真っ白になるか、"glColor3f"で指定された 色でベタ塗されてしまうようです。 環境マッピングはきちんと表示されるようです。 私のプログラムの問題ということではなくて、 ネットでダウンロードしてきた全てのサンプルプログラムを そのままコンパイルした場合でも同じ現象がおこります。 OpenGL対応・非対応のビデオカード双方で試しましたが結果は 同じでした。(複数のPCで動作確認しました) コンパイラーは "Borland C++ 5.5 for Win32"を利用しているのですが BorlandC++Builder5に元々用意されている、OpenGL関連のライブラリに 問題があるのでしょうか?
>>758 解決しますた。
具体的に言うと、xをxMoveとかに名称を変更したらできますた。
・・・これってバグ?
>>754 私は詳しくないので、稚拙な方法かもしれないけど。
・段階的にグラデーションしてる円をテクスチャにして GL_SPHERE_MAP
円の中心を少しずらすとそれっぽいかも
・同じく段階的にグラデーションしてる直線を1次元テクスチャにして、法線で適当に。
NEHEのLesson37で見た
・マルチテクスチャで柄と影を同時に描く。
拡張を使うので、意向に沿わないかもしれないけど。
というか自分でもよくわかってない…
普通のテクスチャ+上記の方法とかで作った影 を混ぜて描くんだと思う。
>>760 > ・・・これってバグ?
もちろんバグ。
当然ながらライブラリのではなく、おまいのコーディングのバグ。
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
糞スレの予感
765 :
デフォルトの名無しさん :03/08/18 12:06
将来的にOpenGLを使用することを見通した上で、 3Dグラフィクスを基礎から勉強するのに良い本はありませんか? できれば日本語で。
>>765 コロナ社の「OpenGLによる3次元CGプログラミング」とか安くていいかも。
っていうか、「物理・制御シミュレーション入門―OpenGLを使ったアニメーションプログラミングの基本から応用まで」ってどうなの?
ソースコードはglutで書かれてる?
767 :
デフォルトの名無しさん :03/08/19 04:58
安倍正平著のOpenGLリアルタイム3Dプログラミングって本が最もオススメ。 これ一冊読めばOpenGL+Win32でバリバリプログラム書けるよ。プロを目指す人は赤本とセットで買うのが常識。
768 :
デフォルトの名無しさん :03/08/19 11:57
>767 そんな本どこにもないんだが。
769 :
デフォルトの名無しさん :03/08/19 12:55
烈火のごとく質問。 テクスチャを貼った平面ポリゴンにスポットライトを当てたいのですが ライティングが効かずに真っ暗になるだけです。 ・・・解決方法がわかる玄人はいませんか、そうですか。
>>770 いないと思うなら質問するな。訊く気がないならさっさと帰れ。
どうせライティングの方向でミスってるぐらいなもんだ。
773 :
デフォルトの名無しさん :03/08/20 00:38
2ch名物「釣られた逃げ」
Windows依存の質問なんですがGLUT使わずに (解像度まで指定できる本物の)フルスクリーンにするには OpenGLだけじゃ駄目ですか? 考えたついた唯一の方法はDirectGraphicsでGetDCしてそれをHGLRC化なんですが (今時間ないので)まだ試してません。 あとWindows用のOpenGLやGLUTのソースってどこかで無料で手に入る物なんでしょうか?
>>775 漏れは手抜きでSDL+OpenGLとかでやってるが、
SDLならソースは公開されてるんで見てみるのも手では?
>>775 >OpenGLだけじゃ駄目ですか?
OpenGLは単にグラフィックスライブラリであって
特定のハードウェアを制御するウインドウ・システムとは無関係です。
よって、解像度変更とかはOpenGLではできません。
と言うよりOpenGLの領分ではありません。
んで本題だけど、漏れは普通にWin32API使ってやってまつ。
ChangeDisplaySettingsで解像度変えたあと
SetWindowLongでウインドウスタイルをWS_POPUPに変更し
SetWindowPos( hWnd, HWND_TOP, 0, 0, width, height, SWP_FRAMECHANGED | SWP_SHOWWINDOW );
みたいな感じ(あと解像度変更に伴い、既存ウインドウの位置がぐちゃぐちゃになるんでそのへんも対処してるが...
でも
>>776 さんのレスからSDLを知り、そっちに乗り換えようかなと思案中...
>あとWindows用のOpenGLやGLUTのソースってどこかで無料で手に入る物なんでしょうか?
Windows用のOpenGLってーのはwglのこと?
wglのソースだったら多分むりだと思ふ(推測
GLUTのソースなら
ttp://www.xmission.com/~nate/glut.html で手に入る
そろそろシェーダというのを勉強してみたいんだけど、 シェーダを解説した書籍もWebサイトも全然見つかりませぬ。 日本語での解説はないんですかね?
>>773 俺のモットーは「初心者に優しい」なんでな(苦笑)。
>>775 glutGameModeString("640x480:16");
glutEnterGameMode();
って駄目?
やっぱソフトシャドウはシェーダーでないとだめだんだろうか。
781 :
デフォルトの名無しさん :03/08/21 10:49
あげ男
The Cg Tutorial 日本語版買った人いる?
>>782 買ったけど、あまりお勧めしたくない感じ。
本家のサイトでダウンロードできるCg Users Manual(日本語版)を改訂した程度の情報
しか載ってないので、7000円払う価値はないような気が。
本の形として持っておきたい人だけ、デカイ本屋で立ち読みして内容を確認してから買った
ほうがいいと思うです。
784 :
デフォルトの名無しさん :03/08/26 01:19
境界ボックスと壁(3角メッシュと4角メッシュ混じり)との衝突検出って、何か良い方法ある? 絶対引っ掛かるんだよなぁ。ジェムの通りにやっても、衝突物と被衝突物との処理をいれかえるところで、5角と3角、4角だから不都合が出るし。 誰か教えて〜!一番簡単なのは、メッシュをどれも境界ボックス以下のサイズにして「境界ボックス内にポイントが入れば〜」だけど、それはイヤだし・・
785 :
デフォルトの名無しさん :03/08/26 01:25
5角と3角、4角だから〜4角と3角、4角だから
ちょっと質問。 glBegin(GL_POLYGON); glVertex3f( 10, 0, 10); glVertex3f( 10, 0, -10); glVertex3f(-10, 0, -10); glVertex3f(-10, 0, 10); glEnd(); ↑のポリゴンを細分化したいのですが、どうすればよろCのでSHOWか?
787 :
デフォルトの名無しさん :03/08/27 00:42
分割平面にテクスチャをマッピングする場合、テクスチャ座標はどのように設定するのでしょうか? 是非。
788 :
デフォルトの名無しさん :03/08/27 11:08
これからOpenGLについて勉強しようと思っているものですが、 OpenGLの将来性、今後の展開についてみなさんはどう考えておられますか? 職業プログラマが、あえてこれから勉強を始める価値があるでしょうか? ちなみに私は数値計算関係のソフトを扱うプログラマなんですが、 可視化の一環として3Dグラフィクスを使用する可能性はなきにしもあらず。 ただ、環境が今後Windowsになっていく雲行きでして、 はたしてその辺がどうかというところです。
>>787 もうちっと詳しく書かないとわからんと思うのだが。
役に立つかわからんけど、
ある方向から見た絵をテクスチャに使ってるなら、
GL_OBJECT_PLANEで自動生成できそう。
790 :
デフォルトの名無しさん :03/08/27 16:01
>>789 具体的には、複数に分割された平面ポリゴンです。
普通の平面ポリゴン(頂点4個)ではglTexCoord2fでテクスチャ座標(u, v)を指定できますが、
for(i=-100; i<=100; i++)
{
x0 = 0.3 * (float) i;
glBegin(GL_QUAD_STRIP);
for(j=-100; j<=100; j++)
{
y0 = 0.3 * (float) j;
glVertex3f(x0, y0, 0.0);
glVertex3f(x0 + 0.3, y0, 0.0);
}
glEnd();
}
のような複数ポリゴンからなる平面に対してテクスチャをマッピングする方法はご存知でしょうか?
何が問題なのかわからんが適当に書いてみた。 ついでにx方向に、-30〜30 で平面を描きたいなら、i<=100 でなく i<100 かと。 glTexcoord2f((float)(i+100)/200, (float)(j+100)/200); glVertex3f(x0, y0, 0.0); glTexcoord2f((float)(i+1+100)/200, (float)(j+100)/200); glVertex3f(x0 + 30, y0, 0.0);
最終行修正 glVertex3f(x0 + 0.3, y0, 0.0);
793 :
デフォルトの名無しさん :03/08/27 22:24
GLdouble 1vertex[476][3],1normal[952][3],2vertex[478][3],2normal[956][3],3vertex[487][3],3normal[975][3],rhosurf4vertex[519][3],4normal[1038][3],f5vertex[570][3],5normal[110][3]; int 1face[952][3],2face[956][3],3face[975][3],4face[1038][3],5face[110][3]; プログラムの配列宣言の時、例えば上のように5個ずつの配列なら簡単ですが、配列が100個とかになったら、1個ずつ宣言してくのは大変なので、 どうにか5個でも100個でも使えるような宣言の方法ありませんか? また図形を描画する時、例えば、 glBegin(GL_TRIANGLES); for(j=0;j<9528;j++){ glNormal3dv(1normal[j]); for (i=0;i<3;i++){ glVertex3dv(1vertex[1face[j][i]]); } } 以下同様に5回繰り返しが続く… これを上の例で5個必要になるのをループ使って、なんとか簡単に(1回で)プログラムを組むことはできますか? まだopenGLを始めたばかりなので。。。お願いします。。
>>791 >>792 誠にありがとうございます。無事にマッピングできました。
まだまだ2chも捨てたもんじゃないな・・・
感謝。
795 :
デフォルトの名無しさん :03/08/28 00:00
openGLにおける透明度の使い方教えてください。どのサブルーチンに入れればいいんですかね? displayの中ですか?
796 :
デフォルトの名無しさん :03/08/28 00:35
ド素人の私に教えてください。 環境マッピング(GL_SHERE_MAP)をつかって 景色の映り込みのようなことを表現したいのですが、 Windows2000だとテクスチャ座標の自動計算がうまく動いてくれないようです。 XPでは正しく表示されることは確認しました。 webで検索したところWindows2000のOpenGLドライバに 環境マッピングの不具合があるらしいことまではわかったのですが、 解決策は見つかりません。 どなたか情報をお持ちの方お願いします。
>>796 Win2kの問題ではなく、ビデオカードの問題だと思うが・・・
レスありがd 同じマシンを2000とXPで起動して確認しました。 2000は3台のPCで試してどれもだめでした。・゚・(つД`)・゚・。 ビデオカードの種類は明日確認してみます。
799 :
デフォルトの名無しさん :03/08/28 14:08
境界ボックスと壁(3角メッシュと4角メッシュ混じり)との衝突検出って、何か良い方法ある? 絶対引っ掛かるんだよなぁ。ジェムの通りにやっても、衝突物と被衝突物との処理をいれかえるところで、4角と3角、4角だから不都合が出るし。 誰か教えて〜!一番簡単なのは、メッシュをどれも境界ボックス以下のサイズにして「境界ボックス内にポイントが入れば〜」だけど、それはイヤだし・・
夏休みも残り少なくなってきました!
801 :
デフォルトの名無しさん :03/08/29 12:00
ところで、OpenGLでのDXF形式の3Dモデル読み込むに関して資料があるサイトってご存知?
802 :
デフォルトの名無しさん :03/08/30 03:40
803 :
デフォルトの名無しさん :03/08/30 19:35
>>783 今更ですが The Cg Tutorial の内容の難易度はどの程度のものでしょうか?
>>803 普通にOpenGLがC言語から使えて、グラフィックアダプターを利用したリアルタイムシェーダー
の基本的な知識があればまぁ判らんってことにはならないと思います。
http://developer.nvidia.com/object/cg_toolkit.html の下の方にかいてあるCg_Users_Manual_JP.pdfをダウンロードしてみるとだいたいこのレベル
の内容だというのが判るので(内容は同じではないが、説明している内容は似たものが多い)
近所に大きな本屋がないのであればこれで判断してみるのもよいかも。
もしあなたがSoftimage|XSIやMayaを使っているデザイナーでプログラムの知識はないけど…
というのであれば、今月のCG WORLD誌がCgの小特集を扱っているのでそちらを見てみるの
も悪くないかも。
805 :
デフォルトの名無しさん :03/08/31 21:35
>>804 見た感じ、それほど難しそうでもなさそうですね。
ちょっと安心。thx
806 :
デフォルトの名無しさん :03/09/03 00:22
初心者質問で申し訳ありませんがよろしくお願いします。 板ポリ2枚にそれぞれアルファチャンネル付テクスチャを張った状態で重ね合わせ、 透明部を維持したまま加算合成をしたいのですがどうすればいいのでしょうか? あと、上記のような板ポリに照光処理でアンビエントにスペキュラを加えて 光っているような状態にしたいのですがオリジナルの色より明るくならないので困っています。 先ほど赤本を読んだら(0,1)にクランプされると書いてあったのですが ひょっとしたらGLの仕様なのでしょうか?
>807
通過テクスチャについて
>>396 ライトの色が白じゃないんじゃない?
809 :
デフォルトの名無しさん :03/09/06 11:49
opengl2.0はもうじきか?
>>809 どーなんだろうね。
この前発表されたgl1.5は2.0までの繁ぎっぽい雰囲気があるからそうかもね。
811 :
デフォルトの名無しさん :03/09/06 17:19
グラボの1.5対応ドライバはいつ出るんだろう (特にATi)
昔、GALAXYってのがあったなあ
813 :
デフォルトの名無しさん :03/09/06 23:33
Quake風(俗に言う一人称視点)の移動プログラムを組みたいのですが 参考になるサイト等はありますでしょうか?
>808 レスどうもありがとうございました。 ライトですがスペキュラのみを使って板ポリを回転させたりしたりして 試してみましたが一応動作しているみたいです。 ただD3Dと比べると全然明るくないので何かパラメータが不足してるのかもしれませんので もう少し調べてみます。 加算合成のほうもまださっぱり進展していないのですが 教えて頂くまで完全にアルファテストで透過させる方法を 失念していましたのでその辺をいろいろ試してみます。
とりあえず加算合成はアルファテスト使用してそれっぽく出来ました。 ただやっぱり非2階調アルファだと輪郭が多少あれですが(笑 ライトの方は相変わらず出来てません、、、
817 :
デフォルトの名無しさん :03/09/17 13:17
すいません、ちょっと教えてください。 3Dでキー入力によって視点の位置を動かすプログラムを作っているのですが、 すごいちらつきが発生しています。 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA)と glutSwapBuffersはやっています。 他にどんな原因が考えられるでしょうか? 実行環境はグラフィックボードも何も積んでいないしょぼいマシンですが、 demoを見る限り、このちらつきはおかしいと思うのですが。
ポリゴンが2枚、近い位置で重なってるのでは? あんまり近いとオンボードとかだとチラチラする。 グラボだとおきない。(たぶんZBufferがうまくいかないんだと思われ
>>818 レスありがとうございます。
でも、
>ポリゴンが2枚、近い位置で重なってるのでは?
そういう状態にはなってないと思います。
Zバッファというのは
glutInitDisplayMode(GLUT_DEPTH)
glEnable(GL_DEPTH_TEST)
して画面描画関数の中で
glClear(GL_DEPTH_BUFFER_BIT)
すればいいんですよね?
これもやっていますが駄目です。
フロントバッファに描画するプログラムになってしまってるとか?
とりあえず、ちらつきが発生する最小限のコードを載せてみます。 ただこれだけのコードなので、ごく基本的なことだと思うのですが。 ちなみに純正のOpenGLではなく、LinuxのMesa5.0.1でやっています。 #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glRotatef(-60,1,0,0); glTranslatef(0.0,1.0,0.0); glColor3f(1.0,0.0,0.0); glBegin(GL_QUADS); glVertex3d(-1.0, 0.0,-1.0); glVertex3d( 1.0, 0.0,-1.0); glVertex3d( 1.0, 0.0, 1.0); glVertex3d(-1.0, 0.0, 1.0); glEnd(); glutSwapBuffers(); } void resize(int w, int h) { glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0,(double)w/(double)h, 1.0, 100.0); glMatrixMode(GL_MODELVIEW); }
void idle() { glutPostRedisplay(); } void init() { glClearColor(0.0,0.0,0.0,0.0); glEnable(GL_DEPTH_TEST); } main(int argc, char *argv[]) { glutInit(&argc, argv); glutCreateWindow(argv[0]); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutDisplayFunc(display); glutReshapeFunc(resize); glutIdleFunc(idle); init(); glutMainLoop(); return 0; } よろしくお願いします。
glutCreateWindowよりglutInitDisplayModeの方を先に実行
>>823 できました。
それだけのことだったなんて・・・
他にこんなところでハマる人はいないんでしょうか。
教えて頂けなければ、いつまでたってもわからなかったと思います。
本当にありがとうございます。
825 :
デフォルトの名無しさん :03/09/20 20:43
OpenGLでディスプレイスメントマッピングはいつできる様になるのだらう
「OpenGLによる3次元CGグラフィックス」買った。 薄くてどこでも読めるのと学校御用達のコロナ社だったんでw 完全初心者用だけど巻末にちょぼっとNURBSとかもあるので。
プログラミングだ…CGぐr(ry
CG WorldにCgみたいな言語で”sh”てのがあるって書いてあって ぐぐってみたんだけど出てこないんですが誰かご存知ないですか?
グワッ… 絞りすぎてた。”sh””gpu”でぐぐったら出た。 スレ汚しすいません。
830 :
デフォルトの名無しさん :03/09/25 15:53
なぜかあるテクスチャを使ったあと色が変わってしまって、 それ以降glColor3fを使ってもオブジェクトが指定した色になってくれません。 (黒になってしまいます) どうしてでしょうか?
>>830 テクスチャが貼られているのでは?
テクスチャを貼りたくないポリゴンには
glDisable( GL_TEXTURE_2D );
をやってみるとか。
>>831 おっしゃる通りでした。ありがとうございます。
833 :
デフォルトの名無しさん :03/09/27 19:22
ATi RADEON9700(ドライバは最新版(CATALYST3.7))でWin上でプログラム組んでます ラインを両面照光ONで照光したのですが、どうも裏面が上手く照光されません glCullFaceで片面ずつONにして2回描画してもダメでした (法線を同じ方向で2回/それぞれ逆方向で2回で試行) ちなみにトライアングルやポリゴン等の面を持ったプリミティブなら問題無いです どなたか同じ様な問題に直面した方はいらっしゃいませんか? また、解決策をご存知の方がいらっしゃいましたらご教授願えませんか?
ラインの裏面?
GLUTにて物体をマウスドラッグで移動させるプログラムを組みたいのですが、 どこか参考になるサイト等ありますでしょうか?
gluProjectとgluUnProject駆使すりゃ楽につくれるんじゃないかね
test
>834 頂点に法線ベクトルを設定すれば自ずと照光の裏表ができますよね?
840 :
デフォルトの名無しさん :03/09/28 13:38
OpenSceneGraphってどうなの? 使ったことある人がいたら感想聞きたいです。
>833 どうしたいのかよくわからんけど ラインの裏面を表示したいいのならライティングをOFFにすれば?
>841 ライティングしたままではラインの表は照光できても裏は暗いまま、 ということなのでしょうか? それともメッシュ表示で照光処理をしてる人はあまり居ないんでしょうか?
根本的にライティングが分かっていないのか、 VGAカード・ドライバのバグなのか、判断に迷う所だな。 ソース出してもらえれば確認できる人もいるだろうケド…
>842 ライティング時はそうなりますな。 照光するかどうかは人によるんじゃない?漏れはしないょ
ある点が現在の行列によってどこに射影されるかを求めるには どうすればいいでしょうか? それと、こういうことを数式を使った理論から勉強するのにいい本など ありましたら教えて頂けるとありがたいです。
846 :
デフォルトの名無しさん :03/10/01 00:49
>>845 gluProjectでウィンドウの座標系に変換できるよ。
Mesaのソースを見れば中で何をやってるかも確認できる。
>>846 できました。ありがとうございます。
どなたか3Dコンピュータグラフィックスに関する本も紹介していただけないでしょうか。
自分の場合OpenGLの関数を覚える前に「ラスタ」「フレームバッファ」などの用語や、
射影行列をどうすればどう見えるのか、などから勉強しないといけなくて、
その辺はネットにもチュートリアルがないので苦労しています・・・
>>848 ありがとうございます。
前からその本は気になっていたのですが、今度じっくり見てみます。
それで、gluProjectで解決したと思っていたのですが、視点を動かしてみると
変な結果になってしまいました。
今その対処法を調べています。
どうしてもわからなかったら、すみませんがまた質問させてください。
描画オブジェクトをマウスでドラッグして移動させようとしてるのですが 以下のような問題で困っています。 1. セレクション時にはマウスポインタの周囲数ピクセルに対して描画オブジェクトを拾う。 ::gluPickMatrix(x,vp[3]-y,4.0,4.0,vp); 2. 描画オブジェクトがセレクトされたときのマウス座標のデプス値を求める。 ::glReadPixels(x,vp[3]-.y,1,1,GL_DEPTH_COMPONENT,GL_FLOAT,&depth); 3. デプス値からオブジェクトの世界座標を計算する。 ::gluUnProject((double)x,(double)(vp[3]-y),depth,mmatrix,pmatrix,vp,&wx,&wy,&wz); 3. オブジェクトを移動する。 opos[id_selected].x = (float)wx; opos[id_selected].y = (float)wy; opos[id_selected].z = (float)wz; 問題はマウスポインタの周囲数ピクセルでセレクションを行っている点で、 実際にセレクトしたときのピクセルが描画オブジェクトのピクセルではない場合があるため 2で背景(あるいは他のオブジェクト)のdepth値がgluUnProjectに渡されてしまって、 描画オブジェクトの位置がおかしくなる場合があります。 こういうときの定石って何かないでしょうか。
セレクションバッファのデプス値を保持することで解決できました。 3時間悩んで他人に聞いたら聞いた3分後に判るの法則・・・。
852 :
デフォルトの名無しさん :03/10/04 00:31
>850 もう少し勉強しましょう
大概のサイトでは2のステップを使った解説があるのでそれを前提に考えていたんですが、 実際はセレクションバッファのz値(minにせよmaxにせよ)を使えばいいわけで、 改めてglReadPixelsを使って取得する必要はないわけですね。
> 実際はセレクションバッファのz値(minにせよmaxにせよ)を使えばいいわけで、 マウスでピックアップしてドラッグするという意味では (普通は一番手前にあるので)min値でした。
>>855 そんな質問の仕方ではだれも答えてくれません。
OpenGLをつかってグラフィックチップのパフォーマンスを最大限に引き出す にはアセンブラ使うしかないのですか? DOOMIIIやQuake3なんかはやっぱりアセンブラ使ってるんですか? ってことはしょぼいやつでもああいったゲームを趣味で作るのは 相当鍛錬をつまないとだめなんでしょうか?
858 :
デフォルトの名無しさん :03/10/08 22:28
OpenGL使っておいてアセンブラもないと思うが とりあえずCgでも勉強してみな
ちゅうか数学でしょ。
860 :
デフォルトの名無しさん :03/10/09 21:49
作れば?
みんなOpenGLでモデルデーター呼び出すのはどうやってるの? DirectXとかとちがってXファイルなんて物はないようだし… 完全自作!?
864 :
デフォルトの名無しさん :03/10/09 22:41
早速ややりはじめたんですがゲーム作成というものだけあって ちょっとGLUTライブラリでは力不足ですね… hDCに描画するにはどうしたらよいんでしょう?
スキニング処理とかやってみたいけど、フリーのモデラでやるとしたら、 メタセコ+mikotoがお手軽なのかなぁ? lightwaveとかmayaとか欲しいけど高いし。 学生じゃないからアカデミックパックも選択できないし。
868 :
デフォルトの名無しさん :03/10/11 22:18
マルチテクスチャを一番多くできるPC用グラフィックスカードって何? 知ってる人教えて! ちなみにATI RADEON 9700PROと3DLabs Wildcat VP870は8つだったYO!
>>863 こないだメタセコイアの独自読み込みライブラリをつくった
つぎはmikotoとのやつでも作ろうかと考え中
LightWaveなら開発元でOpenGL用の読み込み&描画ライブラリ配ってるよ
870 :
デフォルトの名無しさん :03/10/12 06:21
>>867 応募フォームの国の欄がUSかCanadaしかないね。(´・ω・`)
>>870 >Contest is applicable in the 50 states of the U.S., D.C. and
>Canada (excluding Quebec).
>Must be at least 18 years old to enter as of October 7, 2003.
874 :
デフォルトの名無しさん :03/10/12 18:21
GLUTライブラリ使わずにポリゴン表示できた!
>874 プラットホームは?
やっぱハードウェアの情報持ってる人、少ないな こういう情報ってどうやれば収集できるのかなぁ
animadioのソース見るとか > モデル読み込み
モーション対応はLightWave(多分
>>869 の言ってるのと同じ)とvrmlしか見たことない…
>>868 DirectX方面の情報を拾ったほうが早いと思う
OpenGLで使えるとは限らんけど
>878 thx! そっちで調べるのは考えも及ばなかったっす
>881 very thx! とても参考になりました!! ...やはりATI RADEON9700overの8が最大っぽいですねぇ>マルチテクスチャ
883 :
デフォルトの名無しさん :03/10/15 23:46
赤本v1.4が来月出るらしいけど、v1.2からの具体的な変更・追加点が分かる人いる? 噂ではARB extensionsとShadowの項が新たに追加されるらしいんだけども。 ところで、NETWORKING TECHNOLOGYっていうのが気になる・・・
大幅に変わるとだけ言って御香
885 :
デフォルトの名無しさん :03/10/17 00:59
OpenGLとC言語でプログラムを作っているんですが、半球を簡単に作成する方法はないのでしょうか? どうやっても作ることができなかったので、教えてください
886 :
デフォルトの名無しさん :03/10/17 13:20
>885 三角関数を使うと簡単
887 :
デフォルトの名無しさん :03/10/17 18:35
>>886 どのように作ったらいいんでしょうか?
詳しく教えてください
抽象的なヒント。 分度器の90度の軸を中心として回転させると、半球になる。
>889 ?
891 :
デフォルトの名無しさん :03/10/17 21:36
そのモデリングに使う命令がわからないのですが・・
892 :
デフォルトの名無しさん :03/10/17 21:49
OpenGLのプログラミング始めたんですけど. VisualC++のコーディング支援機能が機能しないんですよ 関数の引数とかを表示してくれるやつです あれってどうやったらOpenGLの命令でも引数表示できるようになるんですか?
>>889 三角定規と分度器の区別もつかないんですか?(藁
894 :
デフォルトの名無しさん :03/10/18 00:46
3Dのモデルや、カメラなどが存在している中に、カメラアングルなどに影響されない2Dの文字列を表示させようと思っているんですが、上手くいきません char *c = "a"; glPushAttrib(GL_CURRENT_BIT); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24 , c); glPopAttrib(); これで表示させることはできたのですが、表示位置が左下になっていて、他の位置へ移動させることができませんでした どなたか簡単に表示できる方法が分かる方いましたら教えてください
895 :
デフォルトの名無しさん :03/10/18 02:08
>891 sin()とcos()を使ってx,y,zの座標求めて glVertex3f()で指定するだけ(glBegin()に何を使うかはお好みで) 三角関数の使い方に関しては中学の教科書を引っ張り出して調べてくだされ
896 :
デフォルトの名無しさん :03/10/18 02:14
>894 やったこと無いんで自信が無いがglMatrixMode()でGL_PROJECTIONを 指定してから文字を表示させるのは駄目かな?
897 :
デフォルトの名無しさん :03/10/18 02:33
>>896 どの文字出力命令を使って、文字位置の指定はどうやるんですか?
たぶん glutBitmapCharacter というか glDrawPixels は ビットマップをベタ描画するものなので、ポリゴンとは扱いが違うんじゃないかな。
MODELVIEW, PROJECTION ともに文字出力用に作る必要あり glVertex だけじゃなく glRasterPos も行列の変換が適用される。 (たしか)
ビルボードってやつ?
902 :
デフォルトの名無しさん :03/10/18 15:41
glPushMatrix();
glLoadIdentity();
glMatrixMode( GL_PROJECTION );
glPushMatrix();
glLoadIdentity();
glRasterPos2d( -1.0, 0.0 );
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24, 'A' );
glPopMatrix();
glMatrixMode( GL_MODELVIEW );
glPopMatrix();
こんな感じでどないでひょ?
座標は、左=-1,右=1,上=1,下=-1です。
>>894 を見る限りでは、glutBitmapCharacteの第2引数の与え方も
間違っています。分かってるとは思いますけど。
904 :
デフォルトの名無しさん :03/10/18 19:19
>>903 おお! ありがとうございました
結構難しいコードなので、自力では絶対無理だったかも
すごいっす!
>904 この程度のモンを「結構難しい」「絶対無理」とかホザいちゃう時点で 藻前は向いてないと思うぞ>OpenGL、というかプログラマ?
906 :
デフォルトの名無しさん :03/10/19 00:46
ていうか日本でOpenGL使ってる人種って何人くらいだろう? なんかあまりにも少な過ぎるような気がするんだが・・・_| ̄|○ 下手すると普通に300人もいないんじゃないのか?
>906 うにまがの増田氏の連載に載ったアジテーションに乗せられた香具師が 結構いると思われ 漏れもその一人なんだが (´ー`)y−~~~
いかん、「増井」だた (゚д゚lll
>>909 サンクス。結構前の記事なんだね。
でも、アジテーションって程でもないだろ(w
関係ないけど、増井ってソニンに移ってたんだ。
#にいるとばかり…
>911 今は産総研
>>906 3Dプログラムの内の割合はそれほど少なくないだろう。
Windows以外や、マルチプラットフォームを考えれば OpenGL 以外選択肢が無いのが現状だし。
最近は SDL + OpenGL が一番手軽だし。
そもそそもの3Dプログラマの絶対数はどの程度いるんだか知らんが。
>>913 ゲームプログラマの大半は3Dプログラマなんだから、相当数はいるはず。
OpenGL使ってる奴も当然、それなりの数いるはず。特に古い人ほど。
ただ、用途はほとんど実験とか研究のためなんだろうけど。
OpenGL勉強を始めたんですが,ライティングのところで詰まっています. どこかよい解説してくれているところありませぬか?
常に画面上にステータスなど文字情報を表示したいのですが、 そのような情報を描画するためのレイヤーのようなものって あるんでしょうか? そんなものがなくて、描画しているオブジェクトと同様に、 文字情報を表示したいとき、 カメラが向いているベクトルから簡単に描画位置・方向を 得る方法があったら、ご教授ください。
gluOrtho2D
919 :
デフォルトの名無しさん :03/10/19 19:03
glTexCoord2fの使い方がよくわかりません 誰か教えてくれぇ〜
>>914 >ゲームプログラマの大半は3Dプログラマ
なにか大きな勘違いをしている気が。
3Dプログラマと言える範囲の事してる人って一部の人だけだと思う。
921 :
デフォルトの名無しさん :03/10/19 20:32
>>905 OpneGL初めて2,3日
プログラマなわけないでしょ
>>920 なにを指して3Dプログラマというのかちゃんとした定義が
ないので、この手の話はどうでもいい(本人次第)ことなんだが、
実際コアな部分をいじってないからって、3Dの知識がないとは
いえないだろう。
みんなその手の勉強はしていて、そういう仕事がしたくても
回ってこないってのが現実だろう。
923 :
デフォルトの名無しさん :03/10/19 23:42
でもこれだけは言えるよな。 DirectXユーザー >>>超えられない壁>>> OpenGLユーザー もっと布教活動をせなあかんね。
正射影と透視変換って、 同時に使用できるんですか?
>>923 まぁ、Windows使っててあえてOpenGL使う奴もいないだろうな。
Windows上だとほとんど、カーマック専用になってるね(^_^;)
でも、LinuxやMacOSXが徐々にWindowsをリプレースしてくれば
必然的にOpenGLも採用が進むようになるはずだし。
要するに、OSの問題だな。
前にも誰かが書いてたけど、布教するためには書籍が必要だと思う。
>>925 俺はWinUserだがOpenGL専門だ。なかにはこういう奴もいる
たしかにMacやLinuxの方が割合が高いだろうが・・・。
なんかDirectXはキモイ
>>926 なんでOpenGLの日本語書籍は少ないのだろうか・・・。
まともな本は赤本とかしかないぞ・・・。
もっと安くてわかりやすい本はないのか・・。
っていうか3Dって言うとすぐゲームを想像する奴が多すぎ 3DCAD/CAMではOpenGL以外は考えられないくらい使われてる Windowsでも業界標準だし まあCAD/CAMにDirectXを使おうなんて変態はまずいないだろう
929 :
デフォルトの名無しさん :03/10/20 14:29
まあ、3DCGはOpenGLは当たり前だけど3Dプログラミングだと圧倒的にDirectXっていうか、ね。 普通にOpenGLのほうが扱い易いと思うんだがなあ・・・ ていうか、「DirectXやってます」よりも「OpenGLやってます」のがカッコイイね。
て裕香、概念さえ判ってりゃOpenGLもDirect3Dも関係無いべさ。
>885 とりあえず、sphere状に点を打つサンプルを書いとくさ for (double i = 0.0; i < 360.0; i += 15.0) { double dx, x, y, z; z = cos(i * 3.1415 / 180); dx = sin(i * 3.1415 / 180); for ( double j = 0.0; j < 180.0; j += 15.0) { x = x2 * cos(j * 3.1415 / 180); y = x2 * sin(j * 3.1415 / 180); glBegin(GL_POINTS); glVertex3d(x, y, z); glEnd(); } }
訂正 x2はdxに直してくだされ
GeForce4 Ti 4200/AGP/SSE2 使ってるんですが glGetStringで調べると拡張機能のGL_EXT_vertex_weightingがありませんでした。 NvidiaのグラボだとGL_EXT_vertex_weightingは使えないんですか?
>929-930 まったくだ。 というか、DirectXつかってもいいんだけど、 なんかあのM$的名前規則がキモイ
937 :
デフォルトの名無しさん :03/10/21 17:42
視界の設定で上向きベクトルを(0,-1,0)にしているのに、 -(90+10)度、つまり260度くらい 角度がついてレンダリングされていまいます。 多分、自分のミスでしょうが、検討がつきません。 このような経験あるかたがいたら、コメントお願いします。
>937 あぁそれは俺もあったなぁ なんかカメラの向きによって、上向きベクトルがたまに狂うんだよな どやったら解決するんだろ
(追記: ビューを変える処理で、上向きベクトルを切替えています。) 2回目以降からは、思い通りに上向きベクトルが設定できました。 が、どうしても最初に上向きベクトルを変える処理をするとき、 うまくいきません。 変数をprintfしても、ちゃんと設定どおりなのに 表示では、傾いてるんですよ。 OpenGLのバグ?じゃあないですよねぇ。。。
gluLookAt使ってるの? それとも別な関数? もう少し詳しく書いてくれないと。
OpenGLで気合の入った人間モデリングできます? 本に載ってる人間あまりにもサターン星人なもんで・・・ 一応自分なりに作ってはいますがむずかしぃポ・・・・ 助言かソースでこんなのできるぞ!っれいうのないですか?
942 :
デフォルトの名無しさん :03/10/22 04:49
>>941はマルチ
943 :
デフォルトの名無しさん :03/10/22 09:02
>941には無理
945 :
デフォルトの名無しさん :03/10/22 22:04
946 :
デフォルトの名無しさん :03/10/22 23:08
947 :
デフォルトの名無しさん :03/10/22 23:42
>>946 洋書なんですね。
ありがとうございました。
おっす! ちょっと聞きたいんだけど、 DirectXだと8とか9とかそれぞれにSDKがでてるけど、 OpenGLはそういうのはなくて、ビデオドライバに一緒に入ってるってことだから ビデオドライバ新しくすれば、OpenGL1.4とかの環境に勝手になってるってことで いいのかな?
949 :
デフォルトの名無しさん :03/10/23 00:56
glutSolidSphere で球を書い後, glReadPixels(GL_DEPTH_COMPONENT), gluUnProject() で ウィンドウ内の点を 3 次元座標系に逆変換, 得られた座標値が 球上にのってるか計算してみたのですが, 逆変換した点はあまり球上には のらないですね. まあポリゴン近似なので仕方のないんだろうけど. ちなみに半径 20, 分割数 50 の球を 100 離れた点から正射影(320, 240, 200)で 試したところ, だいたい 0.4 ピクセルくらいずれてます.
( ゚Д゚) ・・・・
人少ないなぁ… OpenGL信者は少ないのか…
信者1
先生! そもそも、選択の余地がない場合でも信者でいいんでしょうか?(AA略
マカーの場合は別の意味で信者
955 :
デフォルトの名無しさん :03/10/25 15:16
信者は布教活動に専念しる!
956 :
デフォルトの名無しさん :03/10/25 15:31
おまいらOpenGLの布教活動をもっとがんばれ!
957 :
デフォルトの名無しさん :03/10/25 15:52
じゃあ、もっと参考になるプログラムのあるHPをつくれ!
958 :
デフォルトの名無しさん :03/10/25 16:07
ていうか、もっと参考になる書籍出して!中で出して!
(^Д^)ドピュ
960 :
デフォルトの名無しさん :03/10/25 23:02
OpenGLの布教活動を や ら な い か ?
961 :
デフォルトの名無しさん :03/10/26 00:04
どうやって?
やらない というか、むしろマイナーなままで居て欲しい
963 :
デフォルトの名無しさん :03/10/26 12:11
OpenGLでゲーム作ったほうがかっこいいな
964 :
デフォルトの名無しさん :03/10/26 12:56
ところで、このスレの平均実年齢ってどのくらい?
そんなん調べてどうすんだ?
テクスチャ座標の意味不明(TT やっぱりネットだけの資料で勉強しようってのは無理だったのか… 誰かglTexCoord2fの使い方をわかりやすく解説せしているとこ知りませんか…
967 :
デフォルトの名無しさん :03/10/27 03:49
968 :
デフォルトの名無しさん :03/10/27 21:59
今GLUT使ってるんですが、ボタンとか考えてまして他のToolkitを捜してます。 GLUTのゲームモードみたいな解像度を指定してのフルスクリーンが必要なんですが、 FOX、FLTKなんかのToolkitでも問題なくできますか? 少し調べたところによるとSDKができそうなんですが。
>>968 FOX、FLTKとSDK(多分SDLのはず)は守備範囲が違うんじゃないか。
フルスクリーンでゲームっぽいものを作るなら間違いなくSDLだ。
ただ、OpenGLサーフェース上にボタンを出すとなると難しい問題だ。
っていうか、みんなはなにを使ってるのかすごく聞きたい。(libUFO?)
普通にツールキットでボタンを出すんだったら、wxWindowsがいいって
聞くけど。
ぐぁ SDLでしたね・・ フルスクリーンでゲームだとSDL、 そして、wxWindowsですかー。ふむふむ。 ウィンドウモードとフルスクリーンモードの切り替えを考えていたんですが、 なんか根本的に間違ってるような気がしてきました・・・
GLUI 結構好きなんだけど、C++のライブラリとしてはちょっと…
>>971 おぉ。見た感じえらい出来がいい感じだけど、GLUTに依存してるような
気がするんだが…
オレはGLUTよりSDLの方が好きなんで、SDLに対応してればいいんだけど
どうなんだろ。
SDL + OpenGLだと、やっぱりLibUFOがよさげな感じだけど、
まだ使ったことないんで、いつか試してみます。
ストロークフォントを5,5,10のところに表示させようと思い 次のようにしてるのですが glPushMatrix(); char *string = "ABC"; glTranslatef(5.0,5.0, 10.0); while(*string) glutStrokeCharacter(GLUT_STROKE_MONO_ROMAN, *string++); glPopMatrix(); y軸方向に1本黒い線が出るだけで文字が出てくれません. どのようにしたらまともに出てくれるのでしょうか.
>>974 よく分からんけど、大きすぎるんじゃないか?
translateの後に
glScalef( 0.01f, 0.01f, 1.0f );
やってみるとか。
スクリーン座標直接指定で頂点指定したいんですけど(ライティング済みトランスフォーム済み頂点) OpenGLではできないんでつか? 今はgluOrtho2Dとか使ってるんですけど、直接指定したいんです。
( ゚Д゚) ・・・・
>>975 ありがとうございます
その通りでした
まさかデフォルトがそんなにでかいとは思いませんでした
日本語フォントをストロークフォントで表示させるには
何か特別なことが必要でしょうか?
何か手軽に表示できるクラスや関数があるのでしょうか?
>>976 gluOrtho2D使わずに、glOrthoを使って
glOrtho(0.0,screen_width,screen_height,0.0,-1000.0,1000.0);
とかすればいいんでね?
>>978 少しは自分で検索かけてみるとかしてみたら?
>>979 それでは常に座標変換のコストがかかってしまうと思うのですが。
スクリーン座標を直に指定することが多いので、省けないかナァと。
Avalonが発表されたけど OpenGLはどうなるべ?
avalonてなに?
texture compress てなんか enable とかしないでも使えるでしょうか? いきなり gltextimage2d のパラメータに compression 用のパラメータ 使うだけでいいんでしょうか?