OpenGLスレ
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG質問・雑談なんでもいいので、書き込みましょう。(批判もOK)
※OpenGL関連のスレ寿命短すぎ!
とりあえず50目標
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGOpenGLって初期化の仕方から分からないです
教えて?
0004デフォルトの名無しさん
NGNG0005名無し
NGNGすることで、ビルドできるのな
OPENGLでヴァーチャルリアリティっぽい事やってみたいな
0006デフォルトの名無しさん
NGNGを追加することでビルド出来る
0007デフォルトの名無しさん
NGNGphigsでは一旦作成したストラクチャの中のラベルを検索して
エディット出来るんだけどGLにはそれらしいのが無くてちょっと
不便だった。実際少ししか触ってないので間違ったこと言ってるかも。
ずっとewsでやっててWindowsでこの手のプログラムが動いた
時は感動したなぁ。ずいぶん昔の話だけど(w
0008デフォルトの名無しさん
NGNG書き方しちゃうと相互互換性なくなるし..ジレンマだよね。
00091
NGNG完全互換じゃないからMesa名乗っていたような…(あとライセンスの問題とかで)
NURBSのTRIMが出来ないとか(今は知らん)
というかMesa使ったこと無い!(使おうと思ったことはあるけど)
"ほぼ"完全互換なんじゃない?(どっかに90%位って書いてあったな。適当…)
0010マジレスさん
NGNG00111
NGNG4の言うようにglut使ったほうが楽。無かったらどっからか拾ってきて♪
glut使わないなら(winの場合)
1、windows.hインクルードして
2、ウインドウ作る際、WM_CREATE辺りで
3、PIXELFORMATDESCRIPTOR構造体作って、中埋めて
4、ChoosePixelFormatに渡すとそれに近いフォーマットの番号が返るから、
5、SetPixelFormatにその値渡して、デバイスコンテキスト初期化
6、wglCreateContext→wglMakeCurrentやって終了
7、SwapBuffers(ダブルバッファの場合)やって、おお!
って感じ。参考にならないと思いますが…
unix系の場合は…
長くなるのでやめます。
00121
NGNG一回作ったテクスチャの切り替えはglBindTextureで。
ってそういう意味とも違う?
00131
NGNG俺もそれほど詳しくない(;´Д`)
知ってる人、どんどん教えてあげて♪
00141
NGNGじゃぁ70目標ヽ(´ー`)ノ
0015名無しサソ
NGNG自動検索するプログラムって、どこかに落ちてないかな?ちまちまと
最適化するのは苦手だけど、こういう部分なら勝手に速くなって
くれそうだし(藁)
0016デフォルトの名無しさん
NGNGストライプ形状ってどんなやつ?
0018名無しサソ
NGNG使いまくれるモデルを手間無く作りたい、ということね。
どれだけ速くなるかは知らないけど、遅くなることは
無いだろうし。
0019デフォルトの名無しさん
NGNGみんなむずかしくない?
あとで質問させてくださ〜い
002017
NGNGhttp://home.earthlink.net/~mmchow/meshsdk/meshsdk.html
http://www.cs.sunysb.edu/~stripe/
http://www.nvidia.com/Marketing/Developer/DevRel.nsf/bookmark/0B738E907A7DC3A28825693F0065F772
いずれにしろ。ローダ書くのがめんどい。
ヘタレなんで。
00211
NGNG俺はそうでもなかったけど…
どこらへんが?
00221
NGNGテクスチャ光沢ねーぞ。って方はGL_LIGHT_MODEL_COLOR_CONTROL_EXT
OpenGLこれしか機能ねーのかって方はwglGetProcAddress
002319
NGNGテクマプ初体験だから、もーチュウボウ状態です。QUADで書いたつもりでも、
3角形のパターンが出とります。そもそもテクスチャの作り方も悪いかも知れんで
す。
画面に書いた内容をglCopyTexImage*でテクスチャ作ろうとしてるです。詳しくまた
書くですから、聞いてくだせー
0024 1
NGNGGL_QUADS、GL_QUAD_STRIPどっち?
002519
NGNGども!
GL_QUADS 使ってますです。glTexCood の座標っすかー?いちおうその箇所書きますね。
glBegin(GL_QUADS);
glTexCoord2f (0.0, 0.0); glVertex3f (0.0, 0.0, 0.0);
glTexCoord2f (0.0, 1.0); glVertex3f (0.0, 0.0, mapdata->row*10.0 - 0.05);
glTexCoord2f (1.0, 1.0);
glVertex3f ( mapdata->col*10.0 - 0.05, 0.0, mapdata->row*10.0 - 0.05);
glTexCoord2f (1.0, 0.0); glVertex3f ( mapdata->col*10.0 - 0.05, 0.0, 0.0);
glEnd();
これの前にモデルビュー変換として
glRotatef ( 90.0, 1.0, 0.0, 0.0 );
glTranslatef ( mapdata->col * -5.0, -10.0, mapdata->row * -5.0 );
ってやって xz 平面を上からみたようになるようにしてるつもりです。
mapdata->col,rowは 1から3の整数がはいってるだけです。なんかコメントくだせー
00271
NGNGヒント
glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_FASTEST)
002819
NGNG0029名無しサソ
NGNGをを、ありがとう。卒業研究が終わったらチェックしてみるよ。
自分の卒論はDXFをまともに読むだけで7割方使ってるよ(涙)
あと2日でProgressiveMeshの実装。地獄だ・・・
003019
NGNGglHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_FASTEST)使ってみました。
でも変わらんかったです。
でも他で変化ありました。MAG_FILTER, MIN_FILTER 指定したら、三角形の
ままですがその中でそれらしくでました。
これって必須なんすかね?>MIN_FILTER、MAG_FILTER
うーんでもまだ三角です。大変だわ >OpenGL
003119
NGNGなんかあれこれやったけど、どーもだめっす。なんか、Zの座標値が大きいと(25.0以上)
おかしくなるです。カードのリソースの問題かもなーと思いつつ、もすこしだけ
ねばるっす。ハア
0032デフォルトの名無しさん
NGNGZ座標値が大きいとメモリも多く食うってことはないよ。
mapdata->col、rowを1にしてやってみたけどうまくいったよ。
テクスチャが三角じゃなくポリゴンが三角になってるんじゃない?
デバックしてglVertex3fに渡してる値を調べて見ては?
0033ちゅーぼーですよ
NGNGそれとなく方向性の違う技術のようなきはするのだが。
やはりOpenGL使いのみなのしぅはやはりプラットフォームがWinではない?
003419
NGNGども(少し回復モード)
コメントさんくすです。そうですよね、関係ないすよね。
あの、ほんとすみません。ごめんなさい。あほなとこで問題おこしてたみたいです。
ハハ、ハハ (ごまかしてるつもり
0035名無しサソ
NGNGを買ったので、折角だからこれをOpenGLと併用させることを検討中
だったり。
>>33
DirectXは3D部分も含めて「最新技術をいち早く」というのをモットー
にしているのだと思う。GeForceシリーズやRADEONが持っている最新機能
(CubeEnvMapとか)も使えるし。けど、安定性や使いやすさは2の次に
なっていたりする(8では使い易くなっているけど)。
一方のOpenGLは「3D描画を確実に」というのがモットーだと思う。
バージョンも頻繁には変わらないし、OS間での互換性も高い。
VGAのドライバがしっかりしていれば安定性も高い。けど、最新機能
の一部は使えないし、ちゃんとOpenGLをサポートしている安価な
VGAは結構少ない。
実は、バリバリの最新機能を使うのでなければ、3D描画はたいていは
OpenGLで事足りるのではないかな。Direct3DIMと比べると敷居も低め
だと思うし。
0036デフォルトの名無しさん
NGNGCubeMapだったらOpenGLでも使えるよ。(ビデオやドライバによると思うけど)
他にDirectXで使えてOpenGLでは使えないって機能あるかな?
0037デフォルトの名無しさん
NGNG0038名無しサソ
NGNGアキュームレーションバッファとか使わずに高速に出来たっけ?
それなら更に問題無しなんだけど(笑)でも、G400のEnvBampMap
はDirect3Dのみでサポートされて居いたと思う。自分もG400
持って居るんだけど、これはOpenGLの対応があんまり良くない。
プログラムのデバッグ途中で、ドライバ部分がこけることがあるし、
スピードもD3Dに比べて低い。
GeForceのパワーを手軽に使いたいなら、迷わずOpenGLなんだけどね。
これって、ディスプレイリストに追加するだけでジオメトリエンジンを
自動的に使ってくれるんだよね?前スレでリスト使ったら余計に遅くなった
と言う話を聞いたのだけど、あれはどう言うことだったんだろう。
0039デフォルトの名無しさん
NGNGRADEONとかGeForceとか一部のカードだけだけど、
ハードでサポートしてるよ。CubeMap
オーバーヘッドが大きくて効率悪いけど、
リストにしなくてもジオメトリエンジンは使います。
リストにするだけだと普通頂点バッファがCPU側だから、
Direct3Dよりは遅いです。
拡張機能使えばビデオメモリ側に作れますけど。
0040デフォルトの名無しさん
NGNGgluLookAt() で設定した視点で見たいんですけど、
角度は移動するようなんですが、距離が移動してないみたいなんです。
どうしたら良いのでしょう?
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(left, right, bottom, top, nearZ, farZ);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0, 0.0, m_diff, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
およそこんな感じです。
0041デフォルトの名無しさん
NGNGかえるんじゃやだめなんですか?
0042デフォルトの名無しさん
NGNGGL_PROJECTIONに対して使うものだと思ってた。
GL_MODELVIEWでもいけるの?
0044デフォルトの名無しさん
NGNGPROJECTION は 3D->画面 への変換で、
LookAt は あくまで 3D 空間内のはなし。
だから MODELVIEW
というかバグでなかったんだろか42は...
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNGビデオメモリに置くと結構早さ変わりますか?
一応調べてみようぉ
ちなみに拡張機能の何ていうやつです?
004745補足
NGNGglOrthoは平行射影だから視点からモデルが離れても小さくはならないのだよ。
遠近感出したいならglFrustumかgluPerspectiveを使ってPROJECTIONを定義すればよろしいかと。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG総括&補則
GL_PROJECTION
glfrustum or gluperspective <------&gt; glortho
GL_MODELVIEW
glulookat or gltranslate + glrotate <-----&gt; gltranslate + glrotate
でいいんじゃないでしょうか
005040
NGNG説明不足だったみたいで申し訳ありません。
具体的にやりたかったいのは、glOrtho() ※平行射影じゃないとダメなんです。
で設定した空間を拡大縮小すると、視体積からはみ出した部分が表示されない問題を解決したかったんです。
どうか皆さん引き続き、お知恵拝借願えませんでしょうか。
今まで、glScale() の変わりにglOrtho() で表示したい部分 (例えば top / 2., bottom/2., left/2., right/2.)を指定して、
nearZ, farZ をそのままにしたりしてやってみてはいるんですが、空間が歪んで見えるんです…。
glOrtho() って立方体の空間しか指定出来ないのでは?と考えたりしているんですが、ご存知の方情報をお願いします。
参考になりそうな URL でも良いのでよろしくお願いします。
ほんとに他力本願になっちゃってますが、ピアソンの「OpenGL リファレンス」にも
「Win32 OpenGL」プログラムにも具体的に記述しているところがなくて…、
他に OpenGL 関連でこれは読んどけ!みたいな文献も教えていただけるとありがたいです。
00511
NGNG手抜きコードを…
#define VIEWSIZE 100
Reshape(int width,int height)
{
GLdouble aspectx,aspecty;
if(width>height)
aspectx=(GLdouble)width/height,aspecty=1;
else
aspectx=1,aspecty=(GLdouble)height/width;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-VIEWSIZE*aspectx,VIEWSIZE*aspectx,-VIEWSIZE*aspecty,VIEWSIZE*aspecty,-VIEWSIZE,VIEWSIZE);
glMatrixMode(GL_MODELVIEW);
}
って、こういうこととも違う?
00523
NGNGしかしDirectX7のヘルプで
チュートリアル 1 : 単一の三角形をレンダリングする
ステップ 3.1 : ジオメトリを準備する。がコンパイル時にエラ〜になるのです。
DirectX始めて1年に成りますが三角形もろくに描画できない。
私には3Dプログラムは向いてないんですかね。
んでOpenGLを昨日海外からチュートリアルをDLしてやってみたのですが………
3Dプログラムってこんなに簡単だったのですか。
1日でポリゴンを動かしたり拡大したり回転させたり出来る様になっちゃった。
俺の1年っていったい………(泣
00533
NGNGLesson01〜Lesson32まで。
英語だけどソース見れば何となくOpenGLプログラムが分かると思う
http://nehe.gamedev.net/opengl.asp
0054デフォルトの名無しさん
NGNGグリグリ動かしてみようかな。ありがとう>53
0055デフォルトの名無しさん
NGNG結構参考になるね。バンプのやり方も書いてあるし。
さんきゅぅ!
0056デフォルトの名無しさん
NGNGOpenGLでポリゴンキャラをグイグイいわせてるソフトウェアの
ソースコードを公開しているサイトがあったら教えて下さい。
0057名無しサソ
NGNG多分、この辺だと思う。
http://www.nvidia.com/Marketing/Developer/DevRel.nsf/pages/E11F4D0F59900C9E8825681E007B1065
nVidiaのサイト、本当に良いね。とりあえず最新機能を使いたい時は
要チェックかも。あと、Direct3Dのベンチマークで試してみたんだけど、
実はVRAMに置くのとシステムRAMに置くのではそこまでの違いはないみたい
(状況によって変わると思うけど)。それよりも驚いたのが、Strip描画の
効果。一番効かせた時と全く効かせない時との比較だけど、2.5倍くらい
ポリゴン数に差が出たよ。環境にも依存せずに速くしたいなら、やっぱり
これかも。
005846
NGNGん〜。リンク先のpdfファイルにはそれらしいのが見つからなかったんだけど…
ほかの奴にあるNV_fenceっていうやつでしょうか?
0059名無しサソ
NGNGゴメソ。忙しいからまだ詳しくチェックしてない。
出来れば逆に教えて欲しいくらい(爆)。そこに何らか
の情報があるのは確かだと思うので・・・。
006040
NGNGえー、アスペクト比とは違ったんですけど自己解決しました。
結局 glOrtho() で歪むとか言ってたのは、私のミスで歪みませんでした。
(回転に手抜きして glMultMatrix() 使ってたせい)
その他の皆様も色々とご教授下さってありがとうございました。
結果:glOrtho() だけで見たい部分を拡大縮小すればいい。
に落ち着きました。お騒がせしましたー。
今後もこのスレッド読み直して勉強させてもらいます。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGEXT_compiled_vertex_array
NV_vertex_array_range
NV_fence
あと
wglAllocateMemoryNV()
とかかなー
0063デフォルトの名無しさん
NGNG俺はwindowsで書きなおしたら速度の差に凹んだぞ
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGどっちが速いってこと?
0066デフォルトの名無しさん
NGNGぶっちぎりでWindows
0067デフォルトの名無しさん
NGNG書き直す必要あんの? glut つかってないつうこと?
どんくらいちがうの?
006863
NGNGglut使ってたけど、俺の書き方が悪いのか、
再描画とかでやたらちらついたのでやめた。
それとWindowsプログラミング初めてだったんで
MFCを使ってみたかったってのもある。
ちなみにずっとアニメーションさせるプログラムね。
006963
NGNGWindowsマシンのほうがあらゆるスペックは劣るが速度差は数倍?
開発環境も違うし全くの体感速度なんでかなり曖昧。
マシンのことは詳しいことは知らないけど
ドライバとかそういう問題なんだろう。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG>ドライバとかそういう問題なんだろう。
Linuxだと3Dのハードウェアアクセラレーションが効く環境がかなり限られる
からね。カーネル2.2以上にしてDRマネージャを有効にして、XFree86 4.0以上
でDRIを有効にすればそれなりに速くなるはず。でも、市場の大きさから考えて
ドライバの出来(チューニング度合い)はWindows用の方が上でしょう。
今、2.4.1のカーネルで確かめたら、カーネルのDRMがサポートしてるチップは
banshee/voodoo3, GMX2000, rage128, radeon, i810, G200/G400らしい。
でも、XFree86のradeonのドライバがジオメトリエンジンに対応してるとは思えん。
0072デフォルトの名無しさん
NGNGあと nVidia だとドライバ出してくれてるんですがね。これはそんなに変わらん(Windowsとはずです。
0074デフォルトの名無しさん
NGNG使い方を教えてください。
0075デフォルトの名無しさん
NGNGnot 2D ?
0076デフォルトの名無しさん
NGNG1.2にglTexImage3Dあります。が、使い方が…
nVidiaのドライバ1.2正式に対応してるのかな??(winの話)
0077デフォルトの名無しさん
NGNG0078あげます!
NGNGMagicianやGL4Java、国産(?)のJSparrow等いろいろあるようで、
いまいちそれぞれがどう違うのかよくわかりません。
なにか情報持ってる方、お教えください。
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG別にライブラリがあれば関係無いんじゃない?
0081デフォルトの名無しさん
NGNG8Bitのbmpをテクスチャとして使いたいのですが、うまくいきません。
glColorTable(GL_TEXTURE_2D,GL_RGBA8,256,GL_BGRA_EXT,GL_UNSIGNED_BYTE,ColorTable);
glTexImage2D(GL_TEXTURE_2D,0,GL_COLOR_INDEX8_EXT,Width,Height,0,GL_COLOR_INDEX,GL_UNSIGNED_BYTE,Pixels);
↑を実行するとglColorTableがGL_INVALID_OPERATIONを返します。
何か間違ってますか?教えてください。
008281
NGNG0083デフォルトの名無しさん
NGNG具体的には、ウィンドウの大きさを変えると一部が黒くなるんですよ。
やっぱしWin98とNTでなきゃだめなのかな。
0084デフォルトの名無しさん
NGNGglutMainLoop呼んだらウインドウ閉じてもmainに戻ってこないのですが、
終了時に処理をさせる方法は無いのでしょうか?
メモリ開放や、ハンドルを閉じる場合はどうするでしょう?
0085デフォルトの名無しさん
NGNGGL4Javaを使うのがよろしいかと。
Magicianはフリーで使うにも(簡単な)ライセンス取らないとキャンバス
の右下にemotionだかなんだか忘れたけどウザい文字が出る。
JSpallowも商用は何かしらのライセンスが必要だった気がする。
GL4JavaはLGPLだからその辺は大丈夫。ソースも落とせるから勉強になるし。
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG↓のがあるしね。
http://codeguru.earthweb.com/opengl/index.shtml
0089デフォルトの名無しさん
NGNGビデオドライバーの問題じゃないかい?
#W2KでG400使ってるんだけど最近のドライバーで
#やっとテクスチャがきちんと表示されるようになった。
0090デフォルトの名無しさん
NGNG参考書はOpenGL Programming Guideでいいの?
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNGやっぱ金無いんでwebとあの無料配布のpdfでやってます。
0093デフォルトの名無しさん
NGNGアクセラレーションを有効にする方法に触れないのが謎なスレッドだ
標準で付いてくるOpenGLのスクリーンセーバがビデオカードを何にしようと
速度が変わらない理由が分かってるのだろうか
0094デフォルトの名無しさん
NGNG教えてほしけれりゃそう言やあいいのに
00951
NGNG確かに、OpenGLスクリーンセーバ遅いね。なんであれはハードが有効にならんのかな。
あのソース見たこと無いからなんとも言えんが、自分で似たようなもん作ったら、数倍早かった。
>94
俺も知りたい。
0096デフォルトの名無しさん
NGNGハードウェアアクセラレーションをかける手段が一様でないからでは?
#大体あのOpenGLスクリーンセーバがつくられた頃なんて、ディスプレイリスト
#くらいしかアクセラレート手段がなかったのでは?
ディスプレイリストやgl*Pointerを使えばImmediateModeよりは早くなるけど、
wglAllocateMemoryNVみたいにローカルなアクセラレーション方法しか
ハードウェアの機能を最大限に生かす方法がないからねぇ。
BTW,昨日NVIDIAのOpenGL拡張のドキュメントが更新されたから見て見たんだけど、
専用命令を使えば、DirectX8よりもOpenGL(_NV)の方がGeforce3をしゃぶり
尽くせそう。移植性とかは全くなくなるけど。(W
0097デフォルトの名無しさん
NGNGOpenGLスクリーンセーバは
ハードウェアが効かないだけではなく、
ウェイトも入っていたような記憶が。
#勘違いかも知れません
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNGどゆ意味??
opengl32.lib をリンクしといたら,
実行環境のICD設定で勝手に使われるけど.
0100デフォルトの名無しさん
NGNGディスプレイリストって実は速度的なメリットってそんなに無いみたい。
OpenGLの最適化のドキュメントを必死に読んでたんだけど、ディスプレイ
リストに関してはプログラムの手間を軽減位にしか触れられて無かった。
頂点配列は最近では特に高速化されるみたい。
でもこの話はハードウェアアクセラレーションとはあんまり関係無いね。
nvidiaの拡張命令は便利そうなんだけど野暮ったいんだよなあ。
シャドウマップとかバンプマップの例を見てると結構面白そうなんだけど
nvidiaのカード専用じゃ一般のアプリとしては使えないよなあ。
もしハードウェアアクセラレ=ションを効かせたいならOpenGLの
コンテキストを作る際にそれに合ったピクセルフォーマットを選べばOK。
ここん所はプラットフォームによってコードはまちまち、wglとかaglとか。
0101デフォルトの名無しさん
NGNGほとんど同意なんだけど、nvidiaのカードでも
頂点配列よりはディスプレイリストの方が速いよ。
どちらも普通システムメモリに作られるから、
最適化フォーマットに予めコンパイルできるディスプレイリストの方が有利。
ハードウェアメモリにバッファを作る拡張機能を使うなら話は別だけどねー。
0102デフォルトの名無しさん
NGNG何か知ってることがあったら教えてください。
元のソースは捨ててしまってないんだけど、こんな感じだったとおもう。
一応視点との距離が0にはなってなかった。
void display(void)
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glTranslatef( 10.0, 0.0, 0.0 );
glRotatef( 5, 1.0, 0.0, 0.0 );
drawbox(-10, -50, -50, 20, 100, 100);
glRotatef( 5, 1.0, 0.0, 0.0 );
drawbox(80,-20,-20, 40, 40, 40);
glutSwapBuffers();
}
void drawbox(float x, float y, float z, float w, float h, float d)
{
glBegin(GL_QUADS);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(x, y, z);glVertex3f(x, y+h, z);glVertex3f(x+w, y+h, z);glVertex3f(x+w, y, z);
glColor3f(0.0, 1.0, 0.0);
glVertex3f(x, y, z);glVertex3f(x+w, y, z);glVertex3f(x+w, y, z+d);glVertex3f(x, y, z+d);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(x, y, z);glVertex3f(x, y, z+d);glVertex3f(x, y+h, z+d);glVertex3f(x, y+h, z);
glColor3f(1.0, 1.0, 0.0);
glVertex3f(x+w, y, z);glVertex3f(x+w, y+h, z);glVertex3f(x+w, y+h, z+d);glVertex3f(x+w, y, z+d);
glColor3f(1.0, 0.0, 1.0);
glVertex3f(x, y+h, z);glVertex3f(x, y+h, z+d);glVertex3f(x+w, y+h, z+d);glVertex3f(x+w, y+h, z);
glColor3f(0.0, 1.0, 1.0);
glVertex3f(x, y, z+d);glVertex3f(x+w, y, z+d);glVertex3f(x+w, y+h, z+d);glVertex3f(x, y+h, z+d);
glEnd();
}
0103102
NGNGglutIdleFuncでglutPostRedisplayを呼んで
変数を-100〜100の間をうろうろさせて、
それをglTranslatefのx方向とglRotatefの角度に入れて動かしてました。
あ、それからglPushMatrixとglPopMatrixで挟んで
二つの直方体を動かしてました。
コンパイラはbccです。
あと、コンパイルのときに-DWIN32を付ける必要あるんでしょうかね。
とりあえず、目標はquakeです。今世紀中に完成させたいです。
0104デフォルトの名無しさん
NGNGヲイ;
0105デフォルトの名無しさん
NGNG寿命が伸びているから十分可能かと。
0106102(89歳)
NGNGbccのはDOSと直結してるっぽくてそれがよくない感じなんですけど
そうでもないのかね?
0107デフォルトの名無しさん
NGNGNVIDIAのOpenGL_Perf_FAQによると、(処理時間の順に)
Imm mode > DrawElements > DrawElements using CVA > Display lists >
DrawElements Using wglAllocateMemoryNV
みたい。wglAllocateMemoryNVではAGPメモリにAllocateするより、
VideoメモリにAllocateするほうが(当然)早いみたい。
ま、でもここいらへんはローカル/ドライバの仕様次第って事で。
>>100
わたしはNVIDIA拡張萌え〜です。バンプマップとか特定の要件を
みたせばいいだけならATIのDOT3みたいな単刀直入なやつがいいかな
と思うんですが、レジスタコンバイナは結構使い道がありそうに
思えてしまうところが趣味プログラムには最適だったり。(W
もっとも
>nvidiaのカード専用じゃ一般のアプリとしては使えないよなあ。
というのはおっしゃる通り、というかゲーム以外の実用はほぼありえない
ですね。(^^;
0108デフォルトの名無しさん
NGNGBCBのコンソールでやってみたがOSごと落ちることはなかったなぁ。
でも動作があやしい。main→WinMainで再度確認してみるつもり。
glutIdleFuncでglutPostRedisplay呼ぶよりそのままdisplay呼んだ方がいいかもね。
0109デフォルトの名無しさん
NGNGNormalMapとNormalCubeMapのdot3やったけどうまくいかん。
簡単な流れでいいからおしえて♪
0110102
NGNGそのままdisplayを呼べば全て物足りると思うんだけれど。
違いがあるのかな?
> カレントウィンドウのノーマルプレーンを,再描画の必要に応じてマークする.
> 次の相互作用として,glutMainLoopを通じて,
> ウィンドウのディスプレイ・コールバック関数が
> ウィンドウのノーマル・プレーンを再表示するために呼ばれる.
> 次のディスプレイ・コールバックの前に複数の glutPostRedisplay が
> コールされても,ひとつの再描画コールバックしか有効にならないだろう.
> glutPostRedisplayはウィンドウのディスプレイまたは
> オーバーレイの表示コールバック関数内から,再表示のためにそのウィンドウを
> 再マークするために呼ばれるかもしれない.
> 論理的には,あるウィンドウに対するノーマルプレーンのダメージの知らせは,
> ダメージを受けたウィンドウ上のglutPostRedisplayとして扱われる.
> ウィンドウシステムから報告されたダメージと異なり,
> glutPostRedisplay は(glutLayerGet(GLUT_NORMAL_DAMAGED)によって
> 返される)ノーマルプレーンのダメージ・ステータスを真に設定しない.
> glutPostOverlayRedisplayも参照のこと.
The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3より
0111デフォルトの名無しさん
NGNGWinMainを使うとGLUTの意味が無いんじゃ・・・ん?
0112デフォルトの名無しさん
NGNGhttp://www.nvidia.com/marketing/developer/devrel.nsf/oglFrame?OpenPage
0113デフォルトの名無しさん
NGNGNvidiaにはついていけんわ。
geforce3の技術、完全に把握してる奴おるのか?
0114108
NGNG端末が出ないだけだでは?
NVIDIA拡張使いづらい。
ドライバ寄りというか…
0115デフォルトの名無しさん
NGNG3Dプログラミングやってる人にとってgeforce3は買いなんだろうか?
0116デフォルトの名無しさん
NGNGおとしたけどほとんどのサンプルがうごかねぇ。
早くR10ドライバをリリースすれ。>NVIDIA
>>115
・DirectX8対応ハードのみで動くアプリを作りたい人
・NV1Xのレジスタコンバイナでは機能不足な人
・Dependentテクスチャの機能が使いたくて仕方がない人
・金が余って仕方がない人
は買いだと思う。
0117デフォルトの名無しさん
NGNGどの条件も当てはまらん…
Dependentテクスチャというのがよく分からんが、
それ以外はどうでもいいと言えばどうでもいいなー
MXで別にスピード文句ないし。
0118デフォルトの名無しさん
NGNG・NV1Xのレジスタコンバイナでは機能不足な人
はどう考えても当てはまると思うけど…
0119デフォルトの名無しさん
NGNGスペキュラを (N・H)^m とかやりたい人なら欲しい感じ?
0120デフォルトの名無しさん
NGNGその程度ならNV1Xで十分じゃん
0121デフォルトの名無しさん
NGNGR10はここで落せ
http://www.the-ctrl-alt-del.com/Drivers.htm
0122デフォルトの名無しさん
NGNGレジスタなんちゃらの機能はほとんどかわってないよ
8ステージ使えるようになった量的変化
0123デフォルトの名無しさん
NGNGNV1XでもR10で使用可能になる機能もあるし。
0124デフォルトの名無しさん
NGNGコンバイナってそんなに使う?
0125デフォルトの名無しさん
NGNGゲーム向け。
0126デフォルトの名無しさん
NGNGR10落としてみたけど、VERTEX PROGRAMのエミュレーションが
うまくいってない気がするのは自分だけ?
0127デフォルトの名無しさん
NGNG0128100
NGNGレジスタコンバイナやVertexShaderとかPixelShaderとかの使い方を
理解してOpenGLの最適化についても知識があり、ちゃんとそれらの手法を
マネージメント出来るレベルの人がいたら凄いと思う。
このスレには何人かいそうな気がするけどもっとアピールしていったほうが
いいと思う。
俺も大した知識は無いけど、無いなりにアピールしてたらその筋の偉い人と
話が出来るようになったし。
0129デフォルトの名無しさん
NGNGやっぱり on Windowsがいいのかなぁ。
0130デフォルトの名無しさん
NGNGMac&Javaっす。仕事だとWindowsか。
最新のエクステンションを使いたいならWindowsがいいでしょう。
nvidiaのOpenGLSDKもWindows用だった・・・。
0131デフォルトの名無しさん
NGNG基本的にはエクステンション+GLUT等で作られたサンプルが多いみたい
(全部見てないっす、スマソ)だから、他のプラットフォームに
移植するのもそんなに難しくないと思う。もちろん言うは易しですが。
0132129
NGNG今、OpenGLは初めてなのですが、bcc + GLUTでプログラミングしています。
Javaってことは、JSparrowとか、GL4Javaとか・・?
(i386だけでしたっけ。)
0133デフォルトの名無しさん
NGNGJSparrowもGL4JavaもWin,Mac,Linux他で動きますよ。
結構オススメな開発環境です。
GLUTよりもクロスプラットフォーム性が高いですし、
awtのイベントモデルが使えるのは楽ですよ。
問題はビデオカードベンダー特有とか特殊なエクステンションには
対応していない事ぐらいですが、大抵のヤツには対応してますから
試してみるといいでしょう。
0134132
NGNGあ、本当だー。ありがとー。
0135デフォルトの名無しさん
NGNGディスプレイリストはNV_evaluatorがらみで重要になってくるカモ
0136100
NGNGディスプレイリスト、使い所が難しいなあ。
DrawElementsはディスプレイリストには入れられなかった。
あとポリゴン一枚をディスプレイリストで表示させたらメッチャ
遅くなった。当たり前か〜。
でもいろいろ資料をみたらやはりディスプレイリストが速いって
書いてあるのでこれから使っていこうと思います。
そこらへんの速度関係はどのビデオカードでも一緒ですよね?
で、どのように重要なんでしょうか?nvidia関係の資料は一通り
目を通したんですけど気がつかなかったです。
あ、あと全然関係ないけどRage128はline描画が凄く遅かった。ポリゴン
描画より全然重い。
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNGどの筋の偉い人?
0139似非
NGNG憶測なんだけど。
[ディスプレイリスト/直描画]って描画自体の速度は変わらないと思うのね。
ディスプレイリストにしておくとCPUと描画が並列化されるってことじゃないのかな。
だから、ディスプレイリスト描画開始後、即glFinish()とかをやったら
まるで意味がないってことじゃないのかな。
だったらテメーが実験しろって言うのは勘弁。
0140デフォルトの名無しさん
NGNG並列処理にも相当効果があるけど、
元々は137の言うようにサーバクライアントを意識したからだよ。
ディスプレイリストを一回サーバ側に作ってしめば、
後は何番を実行しろってコマンドを遅るだけで済む。
だからネットワーク上でも3Dアプリを高速に動かせる訳。
ディスプレイリストが無いと
頂点データを全部ネットワーク転送しなきゃならない。
glxプロトコルすら無かったMesaは、描画した後の画像を
ネットワーク転送するしかなかったから、死ぬほど遅かった。
0141デフォルトの名無しさん
NGNG先進的というより結果オーライな仕様だったのか。
0142139
NGNGたしかに元がSGIだってことを考えるとアーキテクチャは
サーバークライアントになるのも頷けるね。
ただ、136はどうもスタンドアロンな環境らしいので、
ちょっと別なレベルの話じゃないかと。
作ったリストをビデオカードが抱えてくれれば
スタンドアロンな環境でもc/sな風味になっていいかも。
0143デフォルトの名無しさん
NGNGつきません。どなたか教えていただけないでしょうか?
0144デフォルトの名無しさん
NGNG0145名無しさん@お腹いっぱい。
NGNGいらっしゃいますか?。(GLUバージョン1.2)
VC6で凹型ポリゴンをテセレーションしようとしたのですが、
gluTessEndPolygonでGLU32.DLLで落ちてしまいます。
ネットを探したのですが、テセレーションに関するサンプルが見つかりません。
よろしくお願いいたします。
0146デフォルトの名無しさん
NGNG本屋に行っても Direct3D(だっけ?)本ばっかりで非 Windowsユーザには
辛い物があります。この間なんか不注意から、VC,VBで学ぶ OpenGL本を買って
しまいました。お救いくだされ。
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG0150146 赤本とは、、、
NGNGこれのことでござりますな。かたじけのうござる。精進しまする。
0151OGL
NGNG徐々に手をひろげていくのがいいかと。俺もまだすこしやり残してるけど。
0152デフォルトの名無しさん
NGNG0153OGL
NGNG同じか逆転するときもあったりする… おかしいかな?
いちおう VIDEO MEMORY に確保してるんだけど…
ちなみに環境は linux + GeForce2 MX だけど、ちゃんとコンパイルリンク通ってるし
なあ…
0154age
NGNG0155OGL
NGNGどうも解像度、トライアングル数によって話が変わってくるみたいです。
トライアングル数が多いほど、解像度が小さいほど、パフォーマンスがあがる傾向
のようです。
例えば、1200x900、58KTri/frame だと、VAR ON, OFF どちらでも、約45 fpsで
2.6MTri/secですが、約182KTri/frame だとそれぞれ28fps, 23 fpsで
5MTri/sec 対 4.186MTri/secとなります。
さらに、800x600では、58KTri/frameだとどちらも 78fpsで4.5MTri/secですが
182KTri/frameだと それぞれ 38fps, 27.4 fpsで 6.916MTri/sec 対 4.986MTri/sec
となります。カメラの向きでまた変化するし、コードの書き方によっても
ちがってくるだろうし、おおざっぱな数値ですが確かに効果はあるようです。
いいかげんなこと言ってすみませんでした>nVIDIA様。
0156デフォルトの名無しさん
NGNG2Dスプライトのように使うということをやっているのですが、
GL_LINEAR でテクスチャを作ると繋ぎ目が出てしまいます。
(GL_NEAREST だと繋ぎ目が出ないのですが、回転が綺麗じゃないです)
綺麗に出力できて繋ぎ目を目立たなくする方法、
もしくは他に何か良い方法はないでしょうか?
0157デフォルトの名無しさん
NGNGボーダーとか使うのわ?
0158デフォルトの名無しさん
NGNG分割してたら無理っしょ。
UVを0.5テクセルずらすとかじゃ駄目か?
0159156
NGNG一週間くらいで、まだ UV とかちょっとよく分かりません。
(現在、Lesson9くらいまで読みました)
3Dハードの半透明機能などが使いたいだけなので、
簡単に実現できそうでなければ GL_NEAREST で
妥協しようかなと思っているのですが。(^-^;
0160デフォルトの名無しさん
NGNG01611
NGNG>156
まったく関係無いと思うけど一応、
glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_FASTEST);
ほかの手、(使い方は良くしらん)
POLYGON_SMOOTH
accume buffer
pbuffer?
使ってぼかす。処理重そう。
01621
NGNGLINEARだと隣のピクセルも必要になるから
テクスチャに重複する部分を持たせる。
データ 012 123 234 456 …
ポリゴン 1 2 3 .4 .…(実際に表示させる部分)
意味不明な説明だけどわかった?
これでうまくいくかは保証無し。
01631
NGNG0164デフォルトの名無しさん
NGNG全部見当違い
0165156
NGNGとりあえず LINEAR 使うのは
もう少し OpenGL 理解するまで我慢することにします。
01661
NGNG0167デフォルトの名無しさん
NGNGテクスチャ座標を0.5ピクセル分内側にずらしてみそ。
0168デフォルトの名無しさん
NGNGgluTessCallback のヘルプのサンプルにあるとおりに、
gluTessCallback(tess, GLU_TESS_BEGIN, glBegin);
gluTessCallback(tess, GLU_TESS_VERTEX, glVertex3dv);
gluTessCallback(tess, GLU_TESS_END, glEnd);
って、記述したら
error C2664: 'gluTessCallback' : 3 番目の引数を 'void (unsigned int)' から 'void (__stdcall *)(void)' に変換できません。 (新しい機能 ; ヘルプを参照)
って、怒られました。
どうしたらよいのでしょーー。
0169デフォルトの名無しさん
NGNGgluTessCallback(tess, GLU_TESS_END, (void (__stdcall *) (void))glEnd);
gluTessCallback(tess, GLU_TESS_VERTEX, (void (__stdcall *) (void))glVertex3dv);
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNGWinNT4.0sp5 VC++6 で今まで開発してたんですが、
Win2000 に変えたとたんに(クリーンインストール)OpenGL の描画が遅くなってしまいました。
ビデオは IBM のオンボードで、Win2000 の sp1, VS6 の sp5 をあててみましたが
何の改善もされませんでした…。
>>83 さんの症状とは違う様です。
どなたか、こんな症状を解決した方、解決策ご存知の方教えて下さい。
0172デフォルトの名無しさん
NGNGIBMのオンボードって何だ?
IBM製のカードでオンボードってあったか?
0173デフォルトの名無しさん
NGNGRADEONやKYROはどうなんでしょう?
0174171
NGNGすんません。IBM のマザーボードにオンボードのビデオ出力っつう事です。
RAM から勝手に 6M 使って描画するバカ野郎の事。
0175デフォルトの名無しさん
NGNGチップの種類が判らないと何とも言えないが。
0176171
NGNG[ディスプレイ]
名前 Intel Corporation 810 Graphics Controller Hub
PNP デバイス ID PCI\VEN_8086&DEV_7123&SUBSYS_71238086&REV_02\3&13C0B0C5&0&08
アダプタの種類 Intel810, Intel Corporation 互換
アダプタの説明 Intel Corporation 810 Graphics Controller Hub
アダプタ RAM 4.00 MB (4,194,304 バイト)
インストールされているドライバ i81xdnt5.dll
ドライバ バージョン 5.11.01.0133.3-NT5 Eng. Sample 03:01AM
INF ファイル i81xnt5.inf (i81x セクション)
カラー プレーン 1
カラー テーブル 65536
解像度 1280 x 1024 x 60 ヘルツ
ビット/ピクセル 16
こんな感じです。6M つってたけど 4M だった…
他の表示に関しては問題なくて、OpenGL の場合だけなんで、
ディスプレイドライバとか関係なさそうな気がするんです。
しかも VC++ から実行した場合のみ。(Debug Release 問わず)
exe をダブルクリックで実行したら遅くないんです。
何が原因として考えられるのでしょう。
0177デフォルトの名無しさん
NGNGビデオドライバを最新のものに更新してみては?
多分3Dアクセラが効いていない。
0178171
NGNG分かりました。やってみます。
ありがとうございました。
0179デフォルトの名無しさん
NGNG画面が広すぎてメモリが足りないんじゃないの?
でも810なら結局ドライバの手抜きか
0180171
NGNG171 です。ドライバ更新してみました。
なんで VC++ から実行した時だけなのか理解不能だったのですが、スピードは改善されました。
ありがとうございました。
View の上にもう一つ View 貼り付けてサブ画面みたいな事してるので、
タイムラグ自体は眼に見えますが、質問した時の "1~2 秒後" って事が無くなったので、
これで良しとしておきます。マシン自体 セレロン 500 MHz ですし…。
(ちなみにメモリ 192M で 1280 * 1024 16bit カラーです)
まがりなりにも 3D の開発なのに、P4 1.3GHz もビデオボードも稟議通りませんでした…。
メモリも 64M は、所長の機械から黙って抜いたモノです。 << まだ気づかれてない(藁
0181デフォルトの名無しさん
NGNGだからって普通、i810になるか?
0182171
NGNG普通ぢゃないのか…鬱死。
0183GL名無し
NGNG0184デフォルトの名無しさん
NGNGあと、頂点配列をスキン変形させたいときって、ハードウエアでいけますか?
今現在、スキンとかモーフィングとかソフトウエアで計算してるんですが、
ハードでいければいいな
0185デフォルトの名無しさん
NGNGGL_EXT_vertex_weightingがスキン用ですね。
使い方忘れてしまったんですが、
モデルビュー行列のモードがもう1つ用意されていて、
これに適切な行列をセットしておいて、
頂点データにウェイトをつけるという簡単な使い方だったかと。
0186184
NGNGということは、
glMatrixMode( MODEL_VIEW0 );
glVertexWeightEXT( weight0 );
glVertex3fv( v );
glMatrixMode( MODEL_VIEW1 );
glVertexWeightEXT( weight1 );
glVertex3fv( v );
みたいになるのかな?
そうだとしたら使いにくそ−・・・
DX8には、それぞれの頂点に行列のインデックス保持して
いっきに計算できるように見えるんですがOGLでそんなことできないのかな?
OGL拡張って、どっちかというとレンダリングクオリティに力入れてるのかな・・
0187デフォルトの名無しさん
NGNG俺も使い方忘れたが、
イチイチMatrixMode変えてglVertexやる必要なかったと思った。
MODEL_VIEW0や1を適当にいじって、
glBegin(GL_LINE_STRIP);
for(GLfloat i=0;i<1;i+=.1)
{
glVertexWeightfEXT(i));
glVertex3fv(i*100-50,0,0);
}
glEnd();
やってみると分かりやすいかもね。
0188デフォルトの名無しさん
NGNG187が書かれているように、
行列は最初に一度だけセットしておけばOKです。
>DX8には、それぞれの頂点に行列のインデックス保持して
GL_NV_vertex_program (VertexShader) を使うとか。
面倒ですけど。
0189デフォルトの名無しさん
NGNGまず考えられるのはステンシルマスクで書きたいところだけマスクする
って所だけど、ハードウェアに高級なものを要求しちゃうからなるべく
軽い(安カードで実現できる)方法を考えてます。
0191デフォルトの名無しさん
NGNG実行したら変にならないですか?
FireGLとかGeforceとかのマシンだときちんと表示されるのに
WildCat4000,4100だとだめなんです。。
例えば・・
WildCat4000なら
テクスチャマッピングがうまく張られない。
張られてるんだけどあきらかにおかしい張られ方してる。
(gluBuild2DMipmaps() 使ってます)
WildCat4100なら
何故かセレクションが手前でなく一番奥の
ポイントがセレクトされてしまう。。
それぞれ最新ドライバをいれています。
知ってる方がいたら教えて欲しいです。
0192デフォルトの名無しさん
NGNG5万円弱
0193デフォルトの名無しさん
NGNG5万円弱か〜。微妙な値段だな…
7万だったら絶対買わないけど。
とりあえず様子見
0194デフォルトの名無しさん
NGNG人に聞きたいんですが、パフォーマンスはそれぞれどの位でしょうか?
単なる texture map が一番早いとは思いますが、他はそれに比べて我慢できる
程度のものでしょうか?
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNGいろいろあると思うけど、任意図形をアルファ値だけのテクスチャ
にしておいて、ソースアルファテストつきで描画→
ディスティネーションアルファテスト付きでモデル描画とか、
ディスティネーションアルファが使えなければ、図形の反転した
部分だけを(ソースアルファテストを使って)Z値だけ埋めていき、
あとはZテスト使って普通に描画とか。
>>194
ハードによるんじゃない?NV_vertex_program(ATI_vertex_transform)
とかを使えばバンプマップの接線座標系のトランスフォームも
ハードウェア支援が受けられるし、そこそこ使えるのでは?(ハード依存するけど)
#もっとも我慢できるかどうかは忍耐力に依存しそうだ。
0197194
NGNG回答ありがとうございます。
ハードウエアの支援方法を勉強しようと思います。(NV_vertex_program)
0198デフォルトの名無しさん
NGNGバンプマップはマルチテクスチャーで描画した方がいいような。
vertex programは頂点を増やしたりすることは出来ないし、
細かくしようと思うとただの四角ポリゴンに何百っていう
頂点数が必要だし。
ただ問題は、テクセルのブレンドにdotが使えないとダメって点
かな。と言うか、もしかしてOpenGLでそれ対応してるのってnvidiaだけ?
あ、あと>>189に対する返事サンキューです。
ディスティネーションアルファは恐らく使えないんで、後は
Depth Bufferしかないんだけど、任意でクリッピングした領域の中
でDepthTestとかしたいんですよ。とは言え最早これしか方法は無い
んだろうか・・・。
0199デフォルトの名無しさん
NGNGvertex_programは今までバンプマップをする時にCPUでやっていた
接線座標系のトランスフォームをGPUでやるって意味です。
(決して頂点を増やすって意味ではないです〈汗)
この方法でも、もちろんマルチテクスチャ、DOT3等は使います。
#判りにくくてゴメソ。
あと、ATIもOpenGLでDOT3に対応してたと思う(こっちは使ったこと
無いので詳しいことは知らないですがEXT_texture_env_dot3とか
があるみたいです)
> 任意でクリッピングした領域の中でDepthTestとかしたいんですよ。
任意でクリップした領域の上にDepthBufferを上書きしていけば
大丈夫でわ?(なんか誤解してたらすまんス)
0200デフォルトの名無しさん
NGNGそう言えばテクスチャベースのバンプマップってポリゴン毎にライトの座標系
をポリゴンのローカル座標系に変換する必要がありましたね。
ここん所をパイプライン分断せずに処理できたら強そうだ。
しかしNV_なんたらとかやってないでOpenGL1.3の標準機能とかにして欲しいっス。マジ。
>任意でクリップした領域の上にDepthBufferを上書きしていけば
>大丈夫でわ?(なんか誤解してたらすまんス)
そうすると任意クリッピング用のDepthBufferが壊れててしまいませんか?
一つの解法として、DepthRangeでクリッピング用のレンジを設定してやれば
無理無くできる気がしています。精度が落ちるけど。
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNG環境は WinNT4.0 VC++6.0 で、
hogeView::OnDraw(CDC* pDC) {
// この辺で wglMakeCurrent( pDC->m_hDC, m_hRC );
// CreatePointFont(…); SelectObject(…);
// は成功してると思って下さい
if (!wglUseFontBitmaps( pDC->m_hDC, 0, 256, 1000 )) { // この戻り値が FALSE
GLenum err = glGetError(); // この値が GL_NO_ERROR
// これを DWORD err = GetLastError() にしても戻り値は 0
}
DrawWithOpenGL( pDC );
// wglMakeCurrent( pDC->m_hDC, NULL );
// DeleteObject(); glDeleteLists(0, 1000);
// とかもちゃんとやってると思って
}
問題というのは、wglUseFontBitmaps() の戻り値が FALSE の時、
GetLastError() とか glGetError() やっても戻り値が 0 なんです。
そのせいか、無理やり後の DrawWithOpenGL(実際の描画) しても、
フォント以外の要素(GL_LINE)も描画されないんです。
だれか原因あるいは究明方法ご存知の方、教えて下さい。お願いします。
0203デフォルトの名無しさん
NGNGあまり使ったこと無いから適当に言うけど、
・使ってるフォントが悪い。違うの使ってみる。
・ちゃんとpDC->m_hDCにフォントを選択しているか。
・ちゃんとglGenLists使う。(はて、関係あったか?)
・ただ単に字が小さい。または、大きい。
・glCallList(s)で違うリストを呼んでいる。
ソースを見た感じ、
wglUseFontBitmaps(pDC->m_hDC, 0, 256,1000)は、
先頭0番目から256個の文字をリスト1000から順番に入れていく。ってのは分かってると思うけど、
描画する時、ちゃんと文字を入れたリスト1000以降をCallしてる?
glCallLists(6,GL_UNSIGNED_BYTE,"OpenGL")見たいな呼び方してるならglListBaseは必要。
glDeleteListsが必要だったかは良くわからんが、glDeleteLists(0,1000)はおかしい。
使ったフォントを消したいなら、glDeleteLists(1000,256)。(リスト1000から256個削除)
多分、使ってるフォントが悪いか、glGenListsかだと思う。
ところでリスト0って定義出来たっけ?
ダラダラ書いたが、全てがあやふやなので聞き流してくれ。
中に当りがあったら明日は晴れだ。
0204デフォルトの名無しさん
NGNG総称ってOpen Graphics Library?
0205デフォルトの名無しさん
NGNGありがとうございます。
glDeleteLists(0,1000) は書き込みの後で気付いて訂正しました。
glGenLists() はやってないので試してみます。
フォントは Courier New 使ってるので大丈夫だと思います。
0206203 = 205
NGNG解決しました。OpenGL とは全然関係ないところで、0 除算してたのが原因デシタ…。
申し訳ないっす。でも参考になりました。ありがとうございました。
デワ逝ってキマス…
0208デフォルトの名無しさん
NGNG0209Take
NGNG私の環境(Win2000 + VC++6.0 )でボードはDiamondのStealth540ですが
ちゃんと動いてますよ。確かチップはSavege4だったと思うんですけど。
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG系の関数使うとメモリリークするんですけど。
このバグフィックスしたバージョンのものの存在、どなたかご存知ないですか?
0212デフォルトの名無しさん
NGNG0213208
NGNGサブ画面用にレンダリングコンテキストを作り直すとSavage4だけ落ちます
モバイルSavageは初期化で落ちます
0214208
NGNGドライバのバージョンを最新の一つ前にしたら落ちなくなった
鬱だ
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNGfull auto
0217名無しさん
NGNG0218名無しさん
NGNG0219名無しさん
NGNG0220名無しさん
NGNG0221名無しさん
NGNG0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNGしかし1番目のウインドー以外正しい位置でレンダリングされません。
4つのウインドーはそれぞれのRCをもちwglShareListで共有してます。
OnDrawでは、大まかですが
wglMakeCurrent( dc , rc );
glMatrixMode(GL_PROJECTION )
glLoadIdetinty();
glViewport(w,h);
glFrustum(...);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
.................
SwapBuffer(..)
wglMakeCureent(0,0);
のようになっています。1画面だとうまくいっているようなんですが、
どこがいけないんでしょう?・・・・
こういうサンプルもなくかなり悩んでます…
0224223
NGNGレンダリングコンテキストを共有したら、うまくいっているように見える。
これでええの?^^;
0225デフォルトの名無しさん
NGNGhttp://www.gamedev.net/reference/programming/features/3dmfc/
参考にならなかったらスマソ。
0226223
NGNGお〜まさしくそのものですね。
ありがとうございます。
0227デフォルトの名無しさん
NGNGただ見えないバッファ作るってだけで、用途が無いような気がするんですけど。
それとレンダリングコンテキスト二つ用意するのと違いってあるの?
0228デフォルトの名無しさん
NGNGゲームとかでマルチパスレンダリングしたいとき
(動的に環境テクスチャを作るとか、シャドウマップを行うときとか)
に使うんじゃないかな?
#シャドウマップに限るならGeforce3ならSGIX_depth_textureとか
#つかうのかな?
0229デフォルトの名無しさん
NGNG直接テクスチャとして使えるんですか?
glCopyTexImage2Dで吸い上げるんなら、ダブルバッファにして裏に書いたら良いような気も?
0230デフォルトの名無しさん
NGNG結局glCopyTex[Sub]Image2Dとかで吸い上げるんだけど、(違う方法
もあったらゴメソ)スクリーンサーフェースと違う解像度、Pixel Format
等でレンダリングできるのがウリみたい。
0231デフォルトの名無しさん
NGNGあと、吸い上げるつーてもハードウェアメモリ間で
コピーされるからかなり速いよ。
無論直接テクスチャとして使えた方がもっと嬉しいけど。
0232デフォルトの名無しさん
NGNGそこはドライバ次第らしい。
でもトリッキーなので新しい仕様が練られてるらしい。
0233デフォルトの名無しさん
NGNGおお、そうだったのか!
0234227
NGNGん〜。便利そうな気もしますが、
わざわざバッファ用意してテクスチャ位しか使い道ないってのも…。(されどテクスチャ?)
他に用途はあります?
とりあえず、物は試しで使ってみます。
0235デフォルトの名無しさん
NGNGcでlinuxをつかってやってます
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNGはいってるんですか?
どうやってつかうんですか?
0238デフォルトの名無しさん
NGNG教えてクソ、10分調べただけで質問すんなや。
0239デフォルトの名無しさん
NGNG・http://reality.sgi.com/mjk/glut3/glut3.html からGLUTの3.7のパッケージをダウンロード
・progs/contrib/text3D.cをコンパイル
・実行する→ウマー
#でもこれくらい自分で調べようよ…
0240初心者
NGNGOpenGLで表示させたいのだが、Invalidateを入れると画面がチカチカ
してしまいます。
数値が変化したときだけ、画面を更新させる方法はないですか?
0241初心者
NGNGOpenGLで表示させたいのだが、Invalidateを入れると画面がチカチカ
してしまいます。
数値が変化したときだけ、画面を更新させる方法はないですか?
0242初心者
NGNGOpenGLで表示させたいのだが、Invalidateを入れると画面がチカチカ
してしまいます。
数値が変化したときだけ、画面を更新させる方法はないですか?
0243デフォルトの名無しさん
NGNG0244初心者
NGNGOpenGLで表示させたいのだが、Invalidateを入れると画面がチカチカ
してしまいます。
数値が変化したときだけ、画面を更新させる方法はないですか?
0245デフォルトの名無しさん
NGNGOpenGLで表示させたいのだが、Invalidateを入れると画面がチカチカ
してしまいます。
数値が変化したときだけ、画面を更新させる方法はないですか?
スライダーバーで各種変数を変化させ、それをリアルタイムで
OpenGLで表示させたいのだが、Invalidateを入れると画面がチカチカ
してしまいます。
数値が変化したときだけ、画面を更新させる方法はないですか?
スライダーバーで各種変数を変化させ、それをリアルタイムで
OpenGLで表示させたいのだが、Invalidateを入れると画面がチカチカ
してしまいます。
数値が変化したときだけ、画面を更新させる方法はないですか?
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248245
NGNG>247
遅レスなってスイマセン。
お二方の書かれたとおりにプログラムを書きましたら
できました。非常によい助言ありがとうございます!
0249デフォルトの名無しさん
NGNG0250名無しさん@OPENGL
NGNG0251デフォルトの名無しさん
NGNGcybervrml97は読み込み(シーングラフの構築)にカナーリ時間かかるぞ
0252デフォルトの名無しさん
NGNG0253ななしさん
NGNGLight/MaterialでAlphaチャネルいじって全透過で見たいんだけど
端っこの4個がどうしても透過がうまくいかないんだ。
どうしょう。ちなみにOpenGL4Javaっす。
うみゅ。
0254デフォルトの名無しさん
NGNG透過を綺麗にやろうとすれば3x3x3の立方体を描画
する順番をきちんと考えて制御しないとだめっすよ。
0255ななしさん
NGNGgl.glDepthFunc(GL_ALWAYS)
入れたら上手く透過できました。デフォルト(GL_LESS)だったようです。
アクリル版で作ったルービックキューブ(ちょっと青色)みたいで
グルグル回して涼しいですぅ。
0256ななしさん
NGNGGL4Javaってauxライブラリ使える?
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNGふと目にはいったんでレス。
使えないよ。gluとglutの一部は使える。
0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNG(物体にどんな回転がかかった後でも、ワールド座標系のx軸、y軸、z軸で回転させたい)
0267デフォルトの名無しさん
NGNG前に回転した行列をとっておいて、その行列にワールド座標系の
回転行列を左から掛ければよいです。時々正規化しましょう。
0268デフォルトの名無しさん
NGNGレスどうもです。
行列をとっておくのはglPushMatrix()ですよね。
その行列の左から新しい行列を掛け合わせるにはどうすればいいんでしょうか。
glPopMatrix()で取り出した後にglRotatef()とかやると、右側から掛けることになっちゃいますよね。
0269デフォルトの名無しさん
NGNG姿勢の制御用にOpenGLの行列操作を利用してはダメです。自前でクラスなり
を作りましょう。
例えば、オブジェクト座標系の行列をMo、ワールド座標系の回転行列をMrと
すれば、ワールド座標系での回転は、Mr x Moで表現できる。
左から掛けるというのは単に計算の順番をいれかえてやるだけです。
0270デフォルトの名無しさん
NGNGを作ったんですが これらのウィンドウのバーの部分に
メニューをつける方法ってあるんでしょうか?
メタセコイアとかマヤみたいに。
この方法をご存知の方、よければ教えてください。
0271デフォルトの名無しさん
NGNG>回転行列を左から掛ければよいです。時々正規化しましょう。
時々正規化する。というところがわかりません。
こうしないとどうなるのでしょうか?
0272デフォルトの名無しさん
NGNGttp://www.watch.impress.co.jp/pc/docs/article/20010802/toshiba.htm
これについているSavageIX(8MB)ってOpenGL対応しているのでしょうか?DirectX
もそれなりに速ければなお良いのですが。
あとWindows2000だとOpenGLの一部でDirectX使っているというのは本当ですか?
0273デフォルトの名無しさん
NGNG対応しているよ。
実装がヘボいらしいけれど・・・。
0274!=267
NGNG行列が正規直行から外れてだんだんオブジェクトの形が崩れてくる
ただし目で見て分かるのは何年も連続稼動したあとだと思う
0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNG正規化って単位行列にすることかと思ってた。
外積2回取るとどうなるの?
0277デフォルトの名無しさん
NGNGSavageIXは一見動作しているようなフリをしてOSごとフリーズするから嫌い。
0278デフォルトの名無しさん
NGNG現行のノートPC用のチップにOpenGLを期待すること自体が無意味だと思われ。
そういやモバイル用Geforceチップの話はどこにいったんだ。
東芝あたりが搭載したノートを4月に出したはずだが、国外オンリーだしYO。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNGDELLもTOSHIBAもgeforce2 goを乗っけたマシン国内向けに売っているけれど、
それじゃなくて?
0281デフォルトの名無しさん
NGNG落ちたことないけれどなあ・・・。
0282272
NGNGそろそろノートでも3Dしたいですよね。
0283デフォルトの名無しさん
NGNGなんかダブルバッファOnにすると表示が乱れる現象があって困り者。
ダブルバッファ使わなければ問題無いがなんかな〜。
ドライバ更新を待つしかないのか・・・・
0284283
NGNG0285デフォルトの名無しさん
NGNGまじで?情報サンクス。探してみるわ。
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGフレーム毎にテクスチャ自体を書き換えたいのですが・・
やっぱ、
毎フレームglTexImage2D()をコールしないとダメでしょうか?
0288デフォルトの名無しさん
NGNGglTexSubImage2D のほうがよい
最近のカードであれば期待した動作になるはず
0289やっと半年
NGNG自分で試した限りではダメでした。
こういう場合はビットマップに描いてからそれをプリンタに出力しかないのかなぁ?
0290287
NGNGありがとうございます。
glTexSubImage2Dで既存のテクスチャを置き換える関数が
わざわざ用意されているということは、
glTexImage2D()を毎フレームコールすると、イメージが
どんどん追加されていくのでしょうか?
それとも、単なるパフォーマンスの違いでしょうか?
0291デフォルトの名無しさん
NGNGglTexImage2Dはテクスチャオブジェクトを新規生成する。
glTexSubImage2Dは既存のテクスチャオブジェクトのピクセルだけを書き換える。
なんとなく前者が重い処理に思えるでしょ。え?思えない?
最近のドライバは後者のために最適化されていたりするらしいので、
頻繁に書き換えるのが前提であるなら glTexSubImage2D の利用を考えてみては。
蛇足ですが、レンダリング結果をそのままテクスチャにする、なんてことをやるには、
これと同系統の命令を使います。命令名失念。glCopyなんとか。
ちとズレますがDirectXでも同様です。
DirectXだとサーフェスをロックしてカキコですね。
転送フォーマットを考えないでいい分、OpenGLのほうが楽ですけど・・・
0292287
NGNGご丁寧にありがとうございます。
当初の目的を達成できました。
全然話が変わるのですけど、GeForce3でVRAM to SYSTEMの
イメージ転送(レンダリングイメージ等)をすると、
OpenGLだとそこそこの速度で転送できるのに、
DirectX8だとまるでパフォーマンスがでません。
どういうカラクリなんだろう・・?
DX8でレンダリングターゲットをロックして
単純なメモリアクセス
*sys++ = *vram++;
でも、めちゃくちゃオーバーヘッドがかかります。
CopyRect使っても変わらないですね。640x480x32の転送で30fps位・・
そういう理由でOpenGLを選択したんですけど、
他のカードではどうなんでしょう?
G450だとDX8でもVtoS転送は速いです。
これは、nVIDIAのせいか?
・・・って、スレ違い?
0293デフォルトの名無しさん
NGNGやったことないスマソ
レンダリングターゲットから一旦外してみてはどうでしょう。
(あるいはターゲットを別サーフェスにする)
ターゲットされてる間は、特別扱いになってる気がしないでもないです。
>・・・って、スレ違い?
そろそろやばいかな〜
0294デフォルトの名無しさん
NGNGあるいは主流でしょうか?
XGLとかはすでに死んだフォーマットなのでしょうか?
0295デフォルトの名無しさん
NGNGvrml
0296デフォルトの名無しさん
NGNGなんで?
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
01/08/27 23:33ID:rH3n9S2oよくわからないのですが。
0299デフォルトの名無しさん
01/08/27 23:34ID:rH3n9S2o0300デフォルトの名無しさん
01/08/28 01:03ID:tmNas1cA0301デフォルトの名無しさん
01/08/29 23:28ID:A6szD0bQhttp://www.darwin3d.com/gdm2000.htm
0302デフォルトの名無しさん
01/08/30 23:04ID:KzLfL2EsThanx!gdmagのやつだね。
0303デフォルトの名無しさん
01/08/30 23:49ID:4x/VOGOc0304k
NGNG0305デフォルトの名無しさん
NGNG気がしますがそれはなぜでしょうか?
OpenGL使ったゲームとかすくないよね。
日本語の資料が少ないせいかな?
OpenGLでゲーム作りたいのですが市場が許さない?
0306デフォルトの名無しさん
NGNGあなたの現在の立場は?
0307デフォルトの名無しさん
NGNG新人ゲームプログラマです。普段はコンシューマゲーム機でゲーム作っています。
PCで出すならOpenGL使いたいかなって思っているところです。
0308デフォルトの名無しさん
NGNGPCのビデオカードがnVidiaだけならOpenGLもありだとは思う。が、
いかんせん他のビデオカードでの対応が悪すぎて、使えない。
まあ、DX7以降はD3DとOpenGLとの差異が少なくなってきてるから、
"一般に配る"プログラムなら、どっちで作ってもあんまり変わらんよ。
(このスレに時折でてくるGL厨房の妄言は無視しようね☆)
それ以前に、
PCゲーム市場に金を出してくれる人がいないという問題もあるけど。
0309デフォルトの名無しさん
NGNGこの件を考えないでいいとして質問。
同じゲームでDirectX使って作ったものとOpenGL使って作ったもの
あなたならどっち買う?
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNGたしかにそうだな。
面白さも同じならどっち選ぶ?
0312デフォルトの名無しさん
NGNGむしろ、聞き慣れない得体の知れないライブラリ(?)を使われると
「うごかねーんじゃねーの」と敬遠される理由になりかねない。
>>311
「まともに動きそうな方」になるでしょうね。
消費者もバカじゃないから、動かない可能性は排除したがるみたいです。
0313デフォルトの名無しさん
NGNGそもそもどんなテクノロジーが使われてるかなんて
一般消費者から見てどうでもいいことなんか選択基準に
なりようがない。
0314デフォルトの名無しさん
NGNG手持ちのハードウェアで確実に動くほうでしょ。
で、そんなことで悩みたくないから PS2 のゲームを買う。
0315デフォルトの名無しさん
NGNGとりあえずOpenGLでやってみます。
0316デフォルトの名無しさん
NGNGDirectXはグラフィック、サウンド、入出力まで揃ってるし
OpenGL採用してるゲームってWin以外にも移植性考えてるからじゃないの?
0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNG研究用ならマルチプラットフォームの方がいいけどね。
0319デフォルトの名無しさん
NGNGサウンドぐらいは機種別に何とかするとして
GLUTでジョイスティック見れなかったけ?
やっぱSDLになるなぁ。
0320デフォルトの名無しさん
NGNGSIGGRAPHで発表するのが最終目標なんだけどOpenGLでやっぱやるべき?
DirectXはゲーム用なので馬鹿にされる?
0321デフォルトの名無しさん
NGNG研究内容がOpenGL依存であるなら、OpenGLで行うべき。
そんな研究が存在するのか謎だけど、自己満足ならアリかも(藁
むしろ研究する環境からの要請で「使わざるを得ない」ということのほうが多いと思うけどね。
標準のライブラリが揃っているとか、他の人と一緒にやるから、とか。
0322デフォルトの名無しさん
NGNGOpenGLだと実装次第でもっと高い精度も可能じゃないの?
0323デフォルトの名無しさん
NGNG0324_
NGNGDirect3Dは倍精度も可能だよ。
パフォは落ちるけど。
やっぱC++&COMが好きな奴はDirectX
Cが好きな奴はOpenGLになるんでないの?
0325デフォルトの名無しさん
NGNG特例を持ち出しても意味ないって
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNGhttp://www.apple.co.jp/opengl/
あとMayaとかSoftImageは内部でOpenGL使ってんじゃないの。
0330デフォルトの名無しさん
NGNGhttp://www.zdnet.co.jp/macwire/9912/02/c_register.html
-Id Softwareの中心的プログラマーであり,OpenGLの熱心な支持者であるJohn Carmack氏
Carmachファンだから俺はOpenGLでゲーム作るぞ!
0331デフォルトの名無しさん
NGNG今頃、コンシューマーボードのOpenGLサポートも
昔のまんま稚拙なものだったかもしれないね。
それが良い事なのか、そうじゃないのかは微妙。
個人的には、OpenGLなんていらないし。
0332バード大佐
NGNG0333k
NGNG多いからそれらもOpenGLではないの?
アリスインナイトメアとか。
0334デフォルトの名無しさん
NGNGあとQuake系でない独自エンジンのSerious Samとか
OpenGLのサポートって基本的にビデオメーカーに依るので
対応の良いとこ(nVidia)とか悪いとこ(Matrox)とかでかなり差が出ると
思われる。
0335デフォルトの名無しさん
NGNGうけているだけ?日本のゲームでOpenGLが使われないのはCarmach
を知らないから。
0336デフォルトの名無しさん
NGNGOpenGLの射影変換で正射影を使うケースってどんなときでしょうか?
透視射影は普通に使うと思うのですが・・・。
0337デフォルトの名無しさん
NGNGglLoadIdentity()は何をやっているのでしょうか?
マトリックスのリセット?
0338デフォルトの名無しさん
NGNGCADやShadeなんかのの3面図書くときとかいっぱい使うことあるでしょよ。
0339デフォルトの名無しさん
NGNGなるほど!3面図は確かにそうですね。
0340デフォルトの名無しさん
NGNGに登録するコールバック関数の2,3番目の引数x,yにはなにが入っているの?
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNGどうすればいいのでしょうか?
0343デフォルトの名無しさん
NGNGCarmachなんて書いてるようではファン失格!
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNGJohn Cramackでした。
>344
Doom作った天才プログラマです。
0346デフォルトの名無しさん
NGNGglGet* で固有の定数もゲットできる
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGglMap1とgluNurbsCurveを使わないといけないのです。
使い方の説明を見てもいまいちわからないのですが
どこかにそれらを使ったサンプルプログラムはありませんか?
実際に使われているものを見れば分かる気がするのですが。
当方、openGLはこれが初めてのプログラムになります。
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNGVC++ で OpenGL を使っているのですが、画面に描画されたイメージを印刷するには、
どうしたらいいのでしょうか?
できれば白黒の2値にして、反転もさせたいのですが…。
印刷の方法だけでも良いので、どなたか教えて下さい。
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNGOpenGLとDirectXが一緒になるって話はどこ逝った。
さがりすぎあげ。
0356デフォルトの名無しさん
NGNG逝った。
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNGhttp://www.aya.or.jp/%7Esanami/peace/
0359デフォルトの名無しさん
NGNGこの辺のサンプルでどうでしょう?
http://www.asahi-net.or.jp/~yw3t-trns/opengl/samples/index.htm
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGねたふりあげ。
0362デフォルトの名無しさん
NGNG何も変わらない
0363353
NGNG久しぶりに見てみたら…ありがとうございます!
参考にさせて頂きます。
ほんとにココ良スレ。age!
0364デフォルトの名無しさん
NGNG基本的には、現在広く使われている ARB や EXT の拡張機能を統合しただけのようです。
0365金穴
NGNGみんなはなにでモデリングして、どーやって読み込んでるのよ?
ファイル読み込むAPIとかってglutとかにあるの?
やっぱ赤本買わないとだめ?
0366デフォルトの名無しさん
NGNGローダー書け。OpenGLが世話してくれるのは描くとこだけ。
VRMLとかOBJとか読んでくれるライブラリもないわけじゃないが、
カスタマイズしにくいし、俺はあんま使わんな。
0367デフォルトの名無しさん
NGNG(例えば「速度:〜」とか)
3次元空間でグリグリ動かせる文字列の作り方はわかるんですが、
それだと視点が変わるとダメだし…
0368デフォルトの名無しさん
NGNG別のDIBに描画してBltするんじゃダメ?
もっといい方法があれば私も教えてほしい。
0369デフォルトの名無しさん
NGNG>3次元空間でグリグリ動かせる文字列
ってwglUseFontOutlines?
だったら
wglUseFontBitmaps
0370デフォルトの名無しさん
NGNGとりあえず glLoadIdentity() 後すぐに描けばそれっぽく見えるのでは。
0371デフォルトの名無しさん
NGNGWindows上でglutを使って書いています。
今マウスの動作をCTRLキーで変更したいのですが、修飾キー(CTRL,SHIFT,ALT)のみの
入力はglutKeyboardFunc()が拾ってくれません。具体的には、マウスをクリックした状態で
画面にマウスポインタを囲む形で円を描き、CTRLキーを押すとその円が大きく、
CTRLキーを離すと小さくなるという感じの動作です。
なんとかならないでしょうか。
0372デフォルトの名無しさん
NGNGCTRLとかはglutSpecialFuncだったかなぁ?
0373デフォルトの名無しさん
NGNG工学迷彩みたいなの(?)やってみたいです。
0374371
NGNGサンクス。CTRL,SHIFT,ALTはglutSpecialFuncではなく
glutGetModifiersでとれるのですが、
このglutGetModifiersをglutKeyboardFuncの中に置いても、
他のキーも一緒に押されないとglutKeyboardFunc自体が呼ばれないので
駄目なのです。
glutDisplayFuncの中でglutGetModifiersを毎回呼んで値を
覚えておくしかないのかなぁ・・・。
0377デフォルトの名無しさん
NGNG何故ダメなんだ?
0378371
NGNG376の駄目ジャンのことですか?
glutGetModifiersって『修飾』って書いてあるだけあって、
他のイベントと組み合わせないといけないようなので、
たとえ常に呼び続けたとしても例えばCTRLキーが単体で押された場合には
それを検出できないので駄目ということです。
マウス操作+CTRLキーってのはよくある組み合わせだと思うけどなぁ。
0380デフォルトの名無しさん
NGNG素直に自作した方が良いかもね。
俺はホイール使いたくて自作。ショボイけど。
一目瞭然にするプログラムを考えてるんですけど、
たとえば、デフォルトの視点からの可視領域だけ、色を変えて
オブジェクトを再描画・・・とかは出来ないんでしょうか?誰かおしえて。
0382デフォルトの名無しさん
NGNGなぜにそれをOpenGLで??
0383381
NGNG上で述べたような機能をもたせる必要があるんです。
何分勉強不足なもんで、的を得ていなかったらごめんなさいでした。
0384デフォルトの名無しさん
NGNGGLUT: Fatal Error in test: failed to create OpenGL rendering context.
とでてしまいウィンドウが作れません。他のマシンでは起動できるのですが・・・
もしかしてビデオカードによっては起動すら出来ない場合ってあるのでしょうか?
環境 Win2000 + 3DP4500 ( KYROII )
0385デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNG「シャドウマップ」が参考になるかもしれません。
0387デフォルトの名無しさん
NGNG「デフォルトの視点」に点光源を対応づければ、この要求は
いわばオブジェクトにシャドウをつける事の逆をやろうとして
いると考えることが出来ます。
ですので、OpenGLでの影付けの技術から何かが応用できるん
じゃないでしょうか。
個人的には対象となるオブジェクトが比較的単純であれば
Stencilを使ったShadow Volumeを使うと思います。
とりあえず、この辺に出ている文章を参考にしては?
developer.nvidia.com/view.asp?IO=Stencil_Buffer_Tutorial
0388387
NGNG0389
NGNG0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNGこのへんで
http://www5a.biglobe.ne.jp/~yu_yoshi/gl/opengltop.htm
0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNG皆、初めで挫折してしまうのかな?
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNGつきで解説しているような サイト or 本 などないでしょうか?
0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNG添付して配布してもかまわないのでしょうか?
0399デフォルトの名無しさん
NGNG特殊なハードウェアがないと駄目なのでしょうか?
0400デフォルトの名無しさん
NGNG俺もよく分からんから適当に言うけど、
REFLECTION_MAPだったら大抵どれでも出来るんじゃない?
nVidiaだったらglext.h、AtiだったらglAti.hをサイトから取ってきたら、
それインクルードして、
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
glEnable(GL_TEXTURE_GEN_R);
glTexGeni(GL_S,GL_TEXTURE_GEN_MODE,GL_REFLECTION_MAP_EXT);
glTexGeni(GL_T,GL_TEXTURE_GEN_MODE,GL_REFLECTION_MAP_EXT);
glTexGeni(GL_R,GL_TEXTURE_GEN_MODE,GL_REFLECTION_MAP_EXT);
でOk。
そんなことを聞いてるんじゃねーよってことなら無視しておくれ。
本当に適当でスマン。
0401
NGNG0402デフォルトの名無しさん
NGNGNvidiaのデベロッパーサイトを漁れば例なりソースなり
出てくる様な気がします。
0403400
NGNG0404デフォルトの名無しさん
NGNG教えてください。初心者なのでサンプルプログラムなどあると助かるのですが。
0405デフォルトの名無しさん
NGNG(曲線はglEvalなんとかしか使ったこと無いのでNURBSは知らん。)
0406デフォルトの名無しさん
NGNGレースゲームのバックミラーとかマップ表示とか立体視の左右分割画面
見たいなののサンプルが見たいのです。
0407デフォルトの名無しさん
NGNGひじょーに短いサンプル
GLfloat cpt[][3]={{-10,-10,0},{5,20,0},{15,-10,0}};
glEnable(GL_MAP1_VERTEX_3);
glMapGrid1f(10,0,1);
glMap1f(GL_MAP1_VERTEX_3,0,1,3,3,&cpt[0][0]);
glEvalMesh1(GL_LINE,0,10);
というか探せばすぐ見つかると思うが…
0408デフォルトの名無しさん
NGNG画面の一部だけデプスバッファクリアってどうやるの?
glClearじゃ画面全体消えるよね?
適当に面で塗りつぶすしか無いのかなぁ。
0409名無しサソ
NGNG別の解決法として一言。テクスチャサーフィスに
レンダリングするという手もあるよ。ただ、互換性を
重視するとglCopyTexImage2D()を使ってバックバッファ
に描画した物をテクスチャサーフィスに転送する必要
があって遅くなるけど。
0410デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNGglEnable(GL_SCISSOR_TEST);
//カメラ一個め
glScissor(x1,y1,sizex1,sizey1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glViewport(x1,y1,sizex1,sizey1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(Pers, sizex1/sizey1, NearClip, FarClip);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//色々描画
//カメラ二個め
glScissor(x2,y2,sizex2,sizey2);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glViewport(x2,y2,sizex2,sizey2);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(Pers, sizex2/sizey2, NearClip, FarClip);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//色々描画
SwapBuffers(hDC);
0413408
NGNG0414デフォルトの名無しさん
NGNGそれが一番効率がいいと思う.
いろいろな形でくり抜けるし.
0415デフォルトの名無しさん
NGNGttp://www.google.com/search?q=cache:ffI-O2KkLq4:www.vsl.gifu-u.ac.jp/techinfo/stereo/tbstereo.sample.html+glScissor&hl=ja&lr=lang_ja
0416408
NGNG>>414
ステンシルがベターだとは思うけど、ステンシルを他のことにも使いたい
となったときに処理が複雑になるなぁ。
ちなみに406ではありませんので。
0417デフォルトの名無しさん
NGNG確かにそうですな.
ステンシル値がぐちゃぐちゃになりそう.
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNGこの二つはどう違うのでしょうか?
0421デフォルトの名無しさん
NGNG⊂二 ̄⌒\ ノ) < >>420 それは愛さ。1さんへの。
)\ ( ∧_∧ / \ \
/__ ) ´Д`) _ //^\)
//// / ⌒ ̄_/
/ / / // ̄\ | ̄
/ / / (/ \ \___
((/ ( _ )
/ / ̄ ̄/ /
/ / / / .
/ / ( /
/ / ) /
/ / し′
( /
) / ...::::::..:::...:...:.. ........
し′ .....:::::::::::::::::::::::::::.::::::
..::::.::::::::::::::::::::::..::::::::::::::'
0422デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNGglFlush()が描画コマンドバッファを全部転送して空にする関数。
glFinish()は描画終了待ちするglFlush()かな。
0425レプタリアン教授
NGNG0426デフォルトの名無しさん
NGNG0427レプタリアン教授
NGNGしばらくGLUTで頑張ったけど、フォントとか、GUI周りの機能がショボ過ぎて・・・
0428レプタリアン教授
NGNGhttp://www.rimath.saitama-u.ac.jp/lab.jp/tsakurai/opengl/progs/wave2d-src.tar.gz
http://www.rimath.saitama-u.ac.jp/lab.jp/tsakurai/opengl/progs/pde1d_01-bin.zip
http://www.rimath.saitama-u.ac.jp/lab.jp/tsakurai/opengl/progs/pde1d_01-src.tar.gz
http://www.rimath.saitama-u.ac.jp/lab.jp/tsakurai/opengl/progs/cubic-bin.zip
http://www.rimath.saitama-u.ac.jp/lab.jp/tsakurai/opengl/progs/cubic-src.tar.gz
http://www.daionet.gr.jp/~masa/archives/glclock-6.0b6.0.zip
改めて数学の知識の大切さを感じます・・・線形数学と数値解析学を勉強し直します。
0429デフォルトの名無しさん
NGNG擬似的な物なら出来る。
ハードウエアで実現する場合、機種依存の機能拡張に頼らざるを得ないのでは?
0430デフォルトの名無しさん
NGNGttp://www.opengl.org/
0431デフォルトの名無しさん
NGNGhttp://www.xmission.com/~nate/glut.html
0432デフォルトの名無しさん
NGNG機能的には変わってないんでしょ?
0433デフォルトの名無しさん
NGNG\demos\sysview
がVCでコンパイルできません。どうすればよいのでしょうか?
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNGいえデモプログラムのコンパイルがしたいのです。
progs\demos\sysview\
以下なんですが
0436デフォルトの名無しさん
NGNGバンプマッピング.
OpenGL1.3からサポートされるって噂はデマ?
0437デフォルトの名無しさん
NGNGsysview.cを見れば分かると思いますがIRIX(SGI社のUNIX)依存のコードのようですね。
カーネルの動作状況を可視化しているようですので、Windowsで動くように書き直してみるとか?
0438レプタリアン教授
NGNG0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNG実際のインプリでは距離じゃなくて深度値で決まるのかな。
0442名無しサソ
NGNG頂点フォグとピクセルフォグというのがあるよ。頂点に距離毎
でフォグの色を付加していく奴と、描画時にZ値の値に応じて
付加していく奴。というのはあくまでD3Dの話なんだけど(笑)
OpenGLではどうなのかな?誰か捕捉プリーズ(役立たず)
0443
NGNG256*256サイズのビットマップのテクスチャーをglTexImage2Dで作ろうとしたら、
エラーメッセージが出ちゃった。
ビットマップを取り出すにはどうすればいいの?
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGちなみにDrawPixelsでもGL_BITMAPはカラーインデックスと
ステンシルインデックスとしてしか使えない。
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNG使ったこと無いからまたまた適当にいうけど、
NVShaderAidで適当にいじってコード吐いて見るとか。
0448446
NGNGNVShaderAid調べてみます。
でも、nVIDIAのDeveloperがつながらない......。
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNGOpenGLそのものにそんな機能は無いYO!
0452名無しサソ
NGNGそんな分けでGLUTを使うべし。GLUTって何ですか?
というのは聞くの禁止。
0453デフォルトの名無しさん
NGNGありがとう。
glutMotionFunc()とかの一般的なものしか使った事が無いので、
緑本で調べてみる。
0454デフォルトの名無しさん
NGNG>>451>>452
ありがとう。
glutMotionFunc()とかの一般的なものしか使った事が無いので、
緑本で調べてみる。
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG緑本
青本
その他たくさん。
0457レプタリアン教授
NGNG0458デフォルトの名無しさん
NGNG簡単なウインドウを作れるレベルは覚えた方がいいかも。
glutでは物足りないっていうならなお更。
そこらへんはDirectXでもたぶん同じでしょう。
WGL関連も若干Win32APIの知識が必要だし。
0459レプタリアン教授
NGNGC→C++→MFC(途中で断念)→OpenGL(途中でWin32APIの知識を要求された)→Win32API (独学で)
↓
→C++、アセンブリ(casl) (大学で)
Win32APIを勉強してて思う事は、Win32APIを知らずしてMFCを学ぶのは自殺行為、というか俺には合わなかったなぁ、という事だ。
下で何が行なわれてるのか分からずにMFC使ってプログラム組んでた時はかなり気持ち悪かった。
Win32APIで、メニューIDとかも自分で整数値振ったりして(リソースエディタ使えよ!)、
実際の動作が理解できるというのは何か心地良い感じ。初心者な意見でスマソ。
0460デフォルトの名無しさん
NGNGアウトピなのでsage.
VC++の新規作成ウィザードの初期カーソル位置がMFCになっているから
C++→MFCといって一旦挫折する人が多いみたいね。
MFCはWin32とC++の設計(デザインパターンとか)を一度マスターしてから
戻ってくると以外に心地よかったりするよ。
0461デフォルトの名無しさん
NGNG(;´Д`)ハァハァ…
0462デフォルトの名無しさん
NGNGデフォルトのカメラ位置、つまり glLookAt を自分で設定する前の
パラメータというのは、どこで得られるのでしょうか?
0463デフォルトの名無しさん
NGNGちょっと意味がわからんのだが、、、
もしかして行列以前の問題か??
0464デフォルトの名無しさん
NGNG「カメラは原点に位置し、負のZ方向を指し、上方向ベク
トル(0,1,0)を持っています」
とかかれています。
これで答えになっているでしょうか?
カメラ位置は自分で変数に保存して覚えておけばよいのではないでしょうか?
0465デフォルトの名無しさん
NGNGまさにそれです。ありまとう。
ていうか、やっぱり赤本とかいう資料ナシにOpenGLプログラミングするのは
無謀ですね‥‥。
他人のプログラムにちょっと手を加えるだけ、と思ってたんですが、
やっぱり網羅的な資料がないと辛いや。
0466デフォルトの名無しさん
NGNG英語で良ければ、
ttp://ask.ii.uib.no/ebt-bin/nph-dweb/dynaweb/SGI_Developer/OpenGL_PG
英語に自信が無ければ素直に買ったほうが良いかも。
ちなみに俺は、コンパイラについてた英語のマニュアル
翻訳ソフトにかけてなんとか勉強してたよ。
それにどれくらいの月日を費やしたことか…(;´Д`)
結局、赤本、青本どっちも買った。
0467デフォルトの名無しさん
NGNG現在、ビューウィンドウ上をマウスクリックした時に
ビューウィンドウで選択されたオブジェクトの位置に
対応したスクリーン座標を取得しようとしているのですが
正しい値を取得できません。
ソースの中身は以下のようになっています。
...
int viewport[4]; //GL_MODELVIEW
double modelview[16]; //GL_PROJECTION
double projection[16];//ビューポート
double ox, oy, oz; // オブジェクトのワールド座標
double wx, wy, wz; // 選択オブジェクトの位置に対応したスクリーン座標
...
オブジェクトのワールド座標値(ox,oy,oz)の取得処理
...
// GL_MODELVIEW, GL_PROJECTIONマトリクス,ビューポートの取得
glGetDoublev(GL_MODELVIEW_MATRIX, modelview);
glGetDoublev(GL_PROJECTION_MATRIX, projection);
glGetIntegerv(GL_VIEWPORT, viewport);
// 選択されているオブジェクトの位置に
// 対するスクリーン座標がwx, wy, wz に入るはず・・
gluProject(ox, oy, oz, modelview, projection, viewport, &wx, &wy, &wz);
以上のような処理をすると本来はWidth 440 Height 310のスクリーンなので
wx 0-440 wy 0-310の範囲の値が入るはずなのに
ox oy oz 43.590000 0.000000 -13.436000
wx wy wz 5845.257067 149.000000 0.507703
とか
ox oy oz 9.217000 0.000000 5.178000
wx wy wz -456.657639 149.000000 0.496399
といったようなとんでもない値が返ってきて期待通りの値が
取得できません。赤本,青本を見てやっているのですが
どうにもよく分かりません。どなたかご存知の方がいれば教えて下さい。
お願いします。
0468467
NGNG...
以上のような処理をすると本来はWidth 440 Height 310のスクリーンなので
wx 0-440 wy 0-310の範囲の値が入るはずなのに
ox oy oz 43.590000 0.000000 -13.436000
wx wy wz 5845.257067 149.000000 0.507703
とか
ox oy oz 9.217000 0.000000 5.178000
wx wy wz -456.657639 149.000000 0.496399
といったようなとんでもない値が返ってきて期待通りの値が
取得できません。赤本,青本を見てやっているのですが
どうにもよく分かりません。どなたかご存知の方がいれば教えて下さい。
お願いします。
0469レプタリアン教授
NGNG0470デフォルトの名無しさん
NGNG0471レプタリアン教授
NGNG0472デフォルトの名無しさん
NGNGレンダリングコンテキストをカレントに設定してる?
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNGGL_MODELVIEWって_MATRIX付け忘れるって間違いだったらよくあるけど、
それでもなさそうだしね。
やり方は合ってると思うから、
glGetで取ってるマトリックスがおかしいんじゃない?
YとZはそれっぽい値になってるから、Xに関係ある部分を調べましょう。
それでもだめならint double→GLint GLdouble 多分関係ないと思うが、、、
0475デフォルトの名無しさん
NGNGgluUnProjectの間違いではないですかね?間違ってたらゴメソ。
参考までに↓
http://www.sys.wakayama-u.ac.jp/~tokoi/opengl/faq.html
0476デフォルトの名無しさん
NGNG0477475
NGNG0478デフォルトの名無しさん
NGNGhttp://www.watch.impress.co.jp/pc/docs/article/20011130/nec2.htm
ま、漏れには縁の無い世界の話だなと。
0479467
NGNGMFCのCSplitterWndクラスを使ってViewWindowを
4分割しているためにおかしな値がはいってくるのでしょうか・・
その後試しに、475さんのおっしゃっていた
glUnProjectでマウス座標からワールド座標を拾ってこれるか
どうかを試してみたところ、2回に一度は正しい値を拾ってこれる
事がわかりました。しかし半分はglProject();同様とんでもなく
大きな値がはいってきます。。どうなっているんでしょうか。。
>469さん
ビューガ歪んでいる」とはどういうことなのでしょうか?
良ければ詳しく教えて下さい。
>472さん
はい。そのようにしています。現に選択されたオブジェクト
の座標は正しい値が拾ってこれています。
0480467
NGNGglUnProject(); → gluUnProject();
glProject(); → gluProject();
0481デフォルトの名無しさん
NGNGhttp://www.3dlabs.com/support/developer/ogl2/index.htm
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGOpenGLのViewが一つでも同様の現象は起きますか?
>>481
いいだしっぺの3Dlabsは仕様にみあったビデオカードを出すことができるんだろ〜か?
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNG今ダウンロードしています。
nvOpenGL_sdk.exe (OpenGLのみ)
NVSDK511FullInstaller.exe (上のにDirectXのやつも一緒になっている)
と理解してよいのですか?フレッツISDNだと一晩以上かかりそうだぁ。
0486デフォルトの名無しさん
NGNG古いVCだとダメか。
0487デフォルトの名無しさん
NGNGぜひ英語に訳してほしいなぁ。STLの勉強もしないと。
0488デフォルトの名無しさん
NGNGソースコード管理プロジェクトceveritt-98へ接続できません。と怒られてしまいます。
なんなんでしょうかコレは?
0489デフォルトの名無しさん
NGNGglDepthFunc(GL_LEQUAL);
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
glBegin(GL_QUADS);
// 前面
glNormal3f(0.0f,0.0f,1.0f);
glMaterialfv(GL_FRONT,GL_DIFFUSE,front_color);
glVertex3f(1.0f,1.0f,1.0f); glVertex3f(1.0f,-1.0f,1.0f);
(省略)
// 背面
glNormal3f(0.0f,0.0f,-1.0f);
glMaterialfv(GL_FRONT,GL_DIFFUSE,back_color);
(省略)
// 同様に上面, 底面, 右面, 左面を記述
glEnd();
のように各面が各色のmaterialを持った立方体を作り、
ライトを当てた上でブレンディングしたいのですがうまくいきません。
ブレンディングするだけならばGL_BLENDをEnableに、GL_DEPTH_TESTを
Disableにすればいいのですが、そこでGL_LIGHTINGをEnableにすると
一部の面しか描画されない状態になります。
なんとかうまく処理する方法はないでしょうか。
0490489
NGNG立方体を描画する前に
glDisabel(GL_LIGHTING)
glDisabel(GL_DEPTH_TEST)
glEnabel(GL_BLEND)
して、描画した後に
glDisable(GL_BLEND)
glEnable(GL_LIGHTING)
glEnable(GL_DEPTH_TEST)
すればいいんだね。
0491489
NGNGやっぱり勘違い。できませんでした。あぅー。
0492デフォルトの名無しさん
NGNG・そもそもGL_BLENDをDisableのままでGL_LIGHT・GLDEPTH_TESTを
Enableにして、ちゃんと描画されますか?
・そもそも、光源を最低一個は作成していますか?
・その光源を忘れずに有効にしていますか?
・光源のAlphaは1.0になっていますか?
・頂点の描画順は大丈夫ですか?
・表裏で異なるマテリアルを使うのであれば、GL_FRONTとGL_BACKに
マテリアルを定義してカリングを無効にすれば良いのでは?
0493デフォルトの名無しさん
NGNGVisual Source Safeの設定が残っていると思われ。
気にしなくてもOKよ。
0494489
NGNGどうもです。上から応えます。
・立方体の6面のうち2面しか描画されていない状態です。
・GL_BLEND(Disable)、GL_LIGHT(Enable)、GLDEPTH_TEST(Enable)で
きちんと描画されています。
・光源(Diffuse)は一個です。
・光源は有効です。GL_BLEND(Disable)、GLDEPTH_TEST(Enable)の状態で
立方体にちゃんと影が出来ています。
・AMBIENT、DIFFUSEともにアルファは1.0fになっています。
・頂点の描画順というのはちょっとよく判りません。各面の頂点が適切に
置かれているかということであれば大丈夫です。それとも画面の深さに
関連したことでしょうか?
・表裏のマテリアルはとくに考えていないのですが、とりあえず作りたいものは
アクリルのように半透明でカラフルな面を持った立方体に光を当てて
明るい面と暗い面を作りたいという感じです。
0495デフォルトの名無しさん
NGNGファイルのデータを3次元で表示するやつを。
3次元の座標に文字を書く時、GLUT の
glutBitmapCharacter
を使っている。引数の、GLUT_BITMAP_HELVETICA_?? は勝手に 2 と書いている。
とりあえず動きます。
VB & OpenGLで の、glut の正式な初期化の仕方と、文字の書き方が分からない。
だれか、教えて下さい。
0496デフォルトの名無しさん
NGNG(´-`).。oO(GL_LIGHT_MODEL_TWO_SIDE)
0497デフォルトの名無しさん
NGNGftp://sgigate.sgi.com/pub/opengl/xjournal/GLUT/glut-i.j.tar.Z
なぜか↑ではDLできない・・・
0498デフォルトの名無しさん
NGNG(´-`).。oO(http://www.opengl.org/developers/code/examples/redbook/redbook.html)
0500デフォルトの名無しさん
NGNGChoosePixelFormatやSetPixelFormatで止められるだけど。
2000でVC6でやってます。
0501名無しサソ
NGNGビデオカードに依るのかも。
うちのG400だと、デバッグモードで
不規則に落ちる。他のカードでは
落ちない。謎。
0503494
NGNGそもそもGL_DEPTH_TESTがDisableな状態でGL_LIGHTINGをEnableにすることに
問題はないのでしょうか?
# なぜ描画の際にGL_DEPTH_TESTをDisableにしているかというと
# 簡単にブレンディングをするためなのですが・・・。
つまり
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glEnable(GL_LIGHTING);
glCallList(cube); // 法線とマテリアル指定のQUADSで立方体を描画
glEnable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
glDisable(GL_LIGHTING);
こういう書き方で正常に描画されることは期待できないのでしょうか?
0504デフォルトの名無しさん
NGNG>>503
それっぽいことやってる。
http://nehe.gamedev.net/tutorials/lesson08.asp
>>495
上記ページにVBのサンプルがあったよ。役立つかわからんけど。
0505494
NGNG解決しました!
そのサイトのサンプルと比べると基本的には同じ手順を踏んでいたんですが、
違う点は私のプログラムがテクスチャを使わずにMaterialの設定をしている点でした。
Materialに渡していた色を調べるとRGBになってました・・・。
結局、それをRGBA(A=1.0f)にした上でパラメータ名をGL_AMBIENT_AND_DIFFUSEにしたら
それっぽいのができました。どうもありがと〜。
0506sabo
NGNG親プロセスはOpenGL表示プロセス、
子プロセスはロボットの動作(座標指定)プロセス。
ってやっていたら変数が渡せません。
共有メモリ等いろいろ試しましたがどうもうまく行きません。
なにかいい方法を教えてください、お願いします。
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNGゲーム?ツール?物理シミュ?
0510デフォルトの名無しさん
NGNGシミュレーションと画面更新を非同期にやってるんぢゃ?
0511デフォルトの名無しさん
NGNGスクリーンセイバー
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG∧η∧ < ーバイセンーリクス
(,,・Д・) \__________
ミ__ノ
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNGそれはわかるのですがプロセスを分ける必要性は感じません。
0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG誰かこの症状について詳しい人いない?
0520519
NGNG0521デフォルトの名無しさん
NGNG0522519
NGNGChoosePixelFormatだけでなくSetPixelFormatもエラーになるようです。
なのでwglChoosePixelFormatARBのソースを…
int i=0;
attributes[i*2]=WGL_DRAW_TO_PBUFFER_ARB;
attributes[i*2+1]=true;
i++;
〜略〜
attributes[i*2]=0;
HDC hdc;
int iPixelFormat;
UINT nformats;
hdc=wglGetCurrentDC();
wglChoosePixelFormatARB(hdc,attributes,NULL,1,&iPixelFormat,&nformats);
どこがおかしいですかね?
今のところ違う方法でエラーは回避してますが、、、
0523デフォルトの名無しさん
NGNGOpenGLの関数をつかって日本語を書きたいのですが、できますか?
glutBitmapCharacter みたいな関数で。
0524デフォルトの名無しさん
NGNGwglUseFontBitmapsか、wglUseFontOutlines使う。
0525デフォルトの名無しさん
NGNGあと、同一ウィンドウに対し、SetPixelFormatは二回以上呼べなかったと思う。
chooseは呼べてもいいと思うけど。
0526519
NGNGデバックすると、ChoosePixelFormatでデバックが勝手に終了してしまうもので、
エラーを調べようにも調べられない。
GDI32.DLLのロード辺りでAccess Violationって出てるんでそれが問題では無いかと。
ドライバーのバクなのかなぁ。
0527デフォルトの名無しさん
NGNGこれの追求が現在のタスクでない限り、無駄に時間を費やさないためにも、
ビデオカードを替えることを勧めます。
0529デフォルトの名無しさん
NGNG参考までに、ビデオカードとOSをおしえてくれたもうれ
0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNGglut.h と stdlib.h をインクルードすると
>エラー E2337 test2.cpp 3811: オーバーロード関数群の中の 1 つだけしか "C" にできない
というコンパイラエラーがでて困ってます.
他の方はどうやって回避してますか ?
0533デフォルトの名無しさん
NGNGNVIDIAは頻繁にドライバーをアップデートしているから
ドライバーを変えれば直る可能性が大
0534デフォルトの名無しさん
NGNG#define _STDCALL_SUPPORTED 1
#include<GL/glut.h>
やってみそ。
0535デフォルトの名無しさん
NGNGありがとうございます.
#define _STDCALL_SUPPORTED
ですよね(1 はいらないのではないかと)?
やってみましたが, まったく状況は変わりませんでした.
0536デフォルトの名無しさん
NGNG関係なかったか、、、スマソ。
0537デフォルトの名無しさん
NGNG> >エラー E2337 test2.cpp 3811: オーバーロード関数群の中の 1 つだけしか "C" にできない
その3811行目ってなに。
0538532
NGNGしてたのを忘れててました. test2.cpp の 3811 行目ではなんの情報もなかったですね.
ソースはGl/glut.h, stdlib.h の順でインクルードしたものです.
そのときのコンパイルエラーは
>エラー E2337 stdlib.h 584: オーバーロード関数群の中の 1 つだけしか "C" にできない
です. そして stdlib.h の 584 行目は
> using std::exit;
です. stdlib.h は C++ Builder Ver. 5.0, Build12.34, Update Pack 1 に
付属のもので Revision 9.20.1.0 となっています.
0539532
NGNGようやく気づいた.
glut.h の 146 行目の exit() に関するところを
namespace std {
extern _CRTIMP void __cdecl exit(int);
}
using std::exit;
に直したら, とりあえずコンパイルは通るようになりました.
こんな感じの修正でいいのかな ?
0540デフォルトの名無しさん
NGNGRevisionはわからないんだけど、手元にあるGL/glut.hはMesa-3.4に入ってた
奴で
#include <stdlib.h> /* for exit() */
となってる。ちなみに日付は2001/03/18。
0541デフォルトの名無しさん
NGNGあと、デフォのままだとニアクリップが遠すぎませんか?
0542デフォルトの名無しさん
NGNGデフォルトのクリップ平面はオフに出来ないよ。
それが出来てしまったら、本来描画されないはずの部分も描画されまくってしまうよ。
凸ポリゴンも守れなくなってしまうし。
ニアクリップが遠すぎって射影行列の設定次第じゃないか?
どういう設定にしてるかわからんが。
0543デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNGLIBやインクルードも設定しています。opengl32.libが見つかりませんという
エラーがでます。心当たりのある人おしえてください。
前に進みません。
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNGOpenGL1.3対応で現在お薦めのグラフィックカードって何かありませんか?
予算は3万以内で、メチャクチャ早く無くていいです。
とりあえず現在のオンボードビデオから脱却さえ出来れば(・∀・)イイ!!(涙)
AGP 64M ぐらいで動作安定してて、サポートが結構しっかりしてると嬉しいです。
よろしくお願いします。
0548デフォルトの名無しさん
NGNGとりあえず、OPENGLってなに? C言語のライブラリなの?
OPENGLの売り文句に、ハードやOSに依存しないってのがあるじゃない?
けど、一方で、OPENGL対応のビデオボードってのもあるだろ? これって
矛盾してるだろ。 ハードに依存しないくせに、特定のビデオボードがOPEN
GL対応ってどういうこっちゃ? なめとんか、ボゲェ。 OPENGLのライブラリ
関数の中には、ハードやOSに依存しない関数もあれば、特定のハードに特化し
た関数もあるってことなのか?
0549レプタリアン教授 ◆ox4ILOLI
NGNG死ね
0550デフォルトの名無しさん
NGNGそーだな、とりあえずSGIのページにでも行って、IrisGLでもしらべたら?
0551デフォルトの名無しさん
NGNG>OPENGLってなに? C言語のライブラリなの?
see
http://opengl.org/developers/faqs/technical/gettingstarted.htm#gett0010
>OPENGLの売り文句に、ハードやOSに依存しないってのがあるじゃない?
>けど、一方で、OPENGL対応のビデオボードってのもあるだろ? これって
>矛盾してるだろ。 ハードに依存しないくせに、特定のビデオボードがOPEN
>GL対応ってどういうこっちゃ? なめとんか、ボゲェ。 OPENGLのライブラリ
>関数の中には、ハードやOSに依存しない関数もあれば、特定のハードに特化し
>た関数もあるってことなのか?
OpenGL自体は特定のハードウェア、OSの実装に依存しないつくりになっています
が、ハードウェアでその中の機能の一部、あるいは全部を肩代わりする事で高速化
しているハードウェアがあります。それを俗にOpenGL対応ハードウェアと呼んで
いることがあるようです。OpenGLの仕様自体は決められているのですが、実装
そのものについては各ビデオカードベンダーに任されているようで、特定のハード
ウェア、ビデオチップでしか動作しない命令なども現在では多々あり、
それらを統合するためのOpenGLAPIの再構築が今、議論されています。
0552デフォルトの名無しさん
NGNGあんがちょ。 だいぶん良く分かった。 あんた詳しいね。
0553
NGNG0554デフォルトの名無しさん
NGNGFFの戦闘シーンでそういったシーンがあるらしいのですが。
0555デフォルトの名無しさん
NGNG斬鉄剣?
0556デフォルトの名無しさん
NGNGglClipPlane使って2回描くとか。適当スマソ。
0557レプタリアン教授 ◆ox4ILOLI
NGNG0559デフォルトの名無しさん
NGNGさらにGL_RESCALE_NORMALも入れるのって無意味?
MEM 64
VB ELSA 511(GFMX400-32MB)PCIを手に入れたんですけど
HDD promiseATA-100+20GB
この構成にNTをインストールしてVC++でOpenGLのプログラミングの入門機
として動作させるのはちときついかな?
0561デフォルトの名無しさん
NGNGそれがいい
ラクだし
0562はじめてのOpenGLらー
NGNG私も、ものすごい初心者で、これからOpenGLを試してみたいと思っています。目的は、服飾関係で画像を作ってみること。
大昔、IndyのIRIXでOpenGLをかじろうとしたことがありましたが、
OpenGL向けのOSやハードウェアで一番ポピュラーなものはどれでしょうか?
まずは機種を買い揃えたいなと・・・(^^ゞ
アドバイスいただけますか?
ちなみに、今持っているのは、Intel Solaris8 を乗せた中古のHPのベクトラ2台と、Redhat Linux7。
>>551さんの示されたWebページも少し眺めてみましたが、MesaとかFree OpenGLがあるようですが、まずは初心者としてはじめやすいのはどれがいいんでしょうか? 次に、仕事で作るようになるとしたら、どんな上級機種・OSが適任なんでしょうかね?
一番使われているものを使いたいです。
よろしくお願いします。
0563はじめてのOpenGLらー
NGNGすみません、追加で、MacOS XもOpenGL使えるのかな・・・?
0564デフォルトの名無しさん
NGNG移植性だけなら最強
0565デフォルトの名無しさん
NGNGスペックで言うのが難しくて困ってます。
どのカード+どのクラスのCPUだとOKっていえるのか情報
探したいんだけどなんかありますか?あったら教えてください!
お礼は結果で払います
0566デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?sourceid=navclient&ie=utf8&oe=utf8&q=OpenGL+%E8%B6%85%E3%83%8F%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%89
0567デフォルトの名無しさん
NGNGPCなら、3DlabsのWildcatシリーズやNECのTEシリーズがいいです。
(つーかそれくらいの安PCしか使ったことないのですけど)
↓このへんのを使ってる人いる?
http://www.sgi.co.jp/products/
入門ならNVIDIAのGeforceシリーズやATIのRADEONシリーズ
がいいんでないかい?赤本にかいてあるくらいの事なら大抵コレくらい
のシリーズで十分学習できるよ。
0568う〜ん…。
NGNG背景としてテクスチャマッピングを使って、その手前に立体(立方体とか)を
表示させたいのですが、テクスチャの方が常に手前に表示されてしまいます。
デプスバッファはちゃんと機能してるはずなのに…。
それぞれの描画部分は簡単に書くと、
glBindTexture(GL_TEXTURE_2D, texid[0]);
glBegin(GL_QUADS);
glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, 0.0, -1.0);
glTexCoord2f(0.0, 1.0); glVertex3f(-2.0, 0.0, 1.0);
glTexCoord2f(1.0, 1.0); glVertex3f(0.0, 0.0, 1.0);
glTexCoord2f(1.0, 0.0); glVertex3f(0.0, 0.0, -1.0);
glEnd();
glutSolidCube(0.5);
です。
よくあるミスとか、ちょっとでも考えられる原因ってありますでしょうか。
0569デフォルトの名無しさん
NGNGテクスチャうんぬんの前に
glutSolidCube(0.5);
がどこに(座標の事ね)描画されるかを教えてくだされ。
0570デフォルトの名無しさん
NGNGデプスバッファ使わんようにしたら?
0571565
NGNGいいでしょうか?特に2000、XPなんてドライバサポートされて
ないし、文言に困るんです。CPU、カード、OSの
組み合わせでこれならOKってのはどうやって言えばいいんで
しょうか〜。
教えて君でごめんなさい。
0572デフォルトの名無しさん
NGNGCPU: 1GHz以上
VGA: Geforce3以上、Radeon8500以上(LE不可
OS: Win98/2000/XP
とか
って別に動作確認したものを書いておけばよいのでは?
0573568
NGNGglutSolidCube(0.5);は、(0.0, 0.0, 0.0)に書いてます。
568に書いたのでは、なぜかテクスチャの方がx軸(マイナス)方向にちょいずれてますが、
特に理由はないです。
回転してどこから見ても、視点から見て重なる部分にはやはりテクスチャが表示されるんです。
あと、背景と言いましたが、立体がテクスチャを突き抜けることもしたいので、
デプスバッファは外せない模様です…。
0574デフォルトの名無しさん
NGNG0575568
NGNGえ〜とすみません…テクスチャDisableとは?
glDisable(GL_DEPTH_TEST)の時に、テクスチャが見えてるかってことでしょうか?
そのことで言えば、見えてます。
ただやはりその場合は、テクスチャの奥にあるはずの立体も
手前に(というか上描きされて)表示されるんですが。
0576デフォルトの名無しさん
NGNGいやいや、テクスチャ使ってない状態ではきちんと表示されるの?
ってことを聞きたかっただけ。
0578デフォルトの名無しさん
NGNGGL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST
を使っているのに歪みが取れません。
パースペクティブコレクションが効かないなんか
理由とかあるんでしょうか?
0579デフォルトの名無しさん
NGNGサーバはLinux + Apacheです。もし可能であればOpenGLをこれから学びたい
と思ってます。
0580デフォルトの名無しさん
NGNG背景として使うポリゴンだけにテクスチャを適用したいのであれば、
glBindTexture(GL_TEXTURE_2D, texid[0]);
glBegin(GL_QUADS);
省略;
glEnd();
glDisable( GL_TEXTURE_2D );
glutSolidCube(0.5);
glEnable( GL_TEXTURE_2D );
のようにしないとイカンのでは?
(もしくは GL_QUADS のところにだけテクスチャON にするとか)
そーしないといらん所にまでテクスチャが適用されてしまうと思うが。
>>578
GL_NICEST で試した?
>>579
残念だがそれは激しくスレ違いと言わざるを得ない。
OpenGL を利用して作られた画像かどうかって、全然関係ないじゃん。
0581578
NGNGGL_NICEST とGL_FASTESTの両方で試してみたんすけど
変化ナシでした…。
0582デフォルトの名無しさん
NGNGGL_DONT_CAREとGL_NICESTで違いでる?
座標の指定が変なだけか、意外とミップマップがおかしいとか。
0583568
NGNG実は原因としては、gluPerspectiveのトコでした。
でも他の問題として、立方体の色がどうしても白色になってしまってて、
その原因は580さんの通りでした。
0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNGundefined reference to `gluTessBeginPolygon`
というエラーがいくつか出ます。それで`gluTessBeginPolygon`を探したところ
#define gluTessBeginPolygon mgluTessBeginPolygon
となっていたのですが、`mgluTessBeginPolygon`はどこにも見当たりませんでした。ようはmake checkが成功すればいいのですが、どうすればよいでしょうか。
0588デフォルトの名無しさん
NGNG自分で考え、自分で決めろ。
自分が今、何をすべきなのか。
ま、後悔のないようにな。
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNGよくきずたな
0591デフォルトの名無しさん
NGNG意味がさっぱり分からないのですが。。。
0592デフォルトの名無しさん
NGNG気にするな。
588はオタ。それを判ってしまったオレもオタ。
0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNGなぜか暗くて、オブジェクト以外は真っ暗。
背景色はコピーされないんでしょうか?
0596デフォルトの名無しさん
NGNG立方体の一面に貼ろうと思うんですけど、
なぜか暗くて、オブジェクト以外は真っ暗。(オブジェクトも暗い)
背景色はコピーされないんでしょうか?
0597デフォルトの名無しさん
NGNG2回送ってしまってすいません。
0598デフォルトの名無しさん
NGNG背景色とか関係無、く画面に描かれているイメージをそのままテクスチャに吸い上げる。
コピーするサイズが2^nになってるか?
それ以前に、ミップマップ理解してるか?
理解していないなら、とりあえず、glTexParameterのGL_TEXTURE_MIN_FILTERを
GL_NEARESTかGL_LINEARにしとけ。
0599デフォルトの名無しさん
NGNGメモリを128*128*4確保して、
128*128の画面をglCopyTexImage2D()でコピーして、
そのまま貼ればよいだけですよね?
GL_TEXTURE_MIN_FILTERはGL_NEARESTかGL_LINEARです。
0600デフォルトの名無しさん
NGNGGL_TEXTURE_MIN_FILTERはGL_LINEARです。
0601デフォルトの名無しさん
NGNGソースを落ち着いて見直したほうがいいと思われ
0602デフォルトの名無しさん
NGNG>メモリを128*128*4確保して、
何を確保しているんだ?
PBufferか?
glCopyTexImage2DでなくglTexImage2D使ってみて、
テクスチャがちゃんと張られてるか確認してみ。
0603600
NGNGオッチョなんでライトの影響を消すの忘れてました( ̄□ ̄;)!!
どうもすいませんでした。<(゚ロ゚;)> うわぁぁぁぁ
あと、glutでGetCursorPos()の様な機能の物が、
見当たらないんですけど、無いんでしょうか?
0604デフォルトの名無しさん
NGNGglutMotionFunc、glutPassiveMotionFuncでとるべい。
0607
NGNG座標を1〜−1内で表現するのが一般的みたいに感じるんですが、
これって何故なんですかね?
画面端の座標が(1,1)とかって扱いにくくないですか?
0608デフォルトの名無しさん
NGNGでは、どんな値だったら扱いやすいと思いますか?
0609デフォルトの名無しさん
NGNG拡大・縮小・回転するのに物理的な座標をいちいち計算するほうが扱いにくい。
CPUはP4の2.2かアスロンXPのデュアル。
俺は、
xp1900x2
ELSAのQUADOR DDC
メモリ1Gの安物ハイエンド?で快適で安定動作する環境を構築したよ!!
0611デフォルトの名無しさん
NGNGボタン押されている時はglutMotionFunc
押されていない時はglutPassiveMotionFuncが呼ばれるんじゃなかったか?
>>606
赤本(OpenGL プログラミングガイド)
意外と奥が深いぞ。
>>610
そこまで揃えておいて挫折するなよ。
0613606
NGNGありがとうございました。
どういうところがあるのでしょうか?
よろしくお願いします。
私はこれからはじめようと思っているので特に
入門的な解説があるサイトを紹介していただきたいです。
0616デフォルトの名無しさん
NGNGだれか助けて。
0617デフォルトの名無しさん
NGNGどーでもいーことですが、IBMの子会社になってエクサにかわりました。
>>614
ググルで「日本語のページを検索」でOpenGLをキーワードにして検索。
0618デフォルトの名無しさん
NGNGこれか?
ttp://www.gimlay.org/~andoh/opengl/ml/
0619デフォルトの名無しさん
NGNGプログラムを一から作ろうと思っているのですが、
参考になるC++のソースのあるサイトないでしょうか?
0620デフォルトの名無しさん
NGNGCGアプリによくある,ビューウィンドウ上の
ある位置に固定して座標軸とか"Front","Top"
とか言う文字列を表示したいのですが
実装方法が良く分かりません。。
あれはどのように実装しているのでしょうか?
ビューウィンドウのある位置に固定して表示する
便利な関数とかあるんでしょうか?
無知な僕に教えてプリーズです。
0621デフォルトの名無しさん
NGNG文字描画用にPROJECTION_MATRIX持てば?
0622私のパンチを受けてみろ!
NGNG0623カウンター
NGNGここだけの話、
"OpenGL"ということでこのスレ聞くよりも、
"物理"ということで違うスレで聞いて回った方が速いかもぁ。
(この手の質問にはあまり反応が無いようで…)
そういうこと言う俺は、当然のことながら、知らん!
0624デフォルトの名無しさん
NGNGRGB値をフレームバッファから、α値をファイル(PNGとか)から取ったテクスチャを作りたいんですが、
glCopyTexSubImage2D とかで特定の値だけを書き換えたりはできないですか?
バックバッファに書いて合成する っていう方法しかないですか?
光学迷彩をカメラの視線に対して垂直に固定された物体に使いたいのです。
一応、Windows でやってます。
0625デフォルトの名無しさん
NGNGそれかマルチテクスチャだろな。
0628デフォルトの名無しさん
NGNG>>269 さんのレスでは自前でしないといけないとのこと。
自前で作るのが面倒(責めないで・・・)なので、
どこかにそれらしいことしてるソースか解説って落ちてないでしょうか。
で、何がしたいかというと、
平面のテクスチャを使って↓のように似非パーティクルを描いておいて、
カーソルキーでグリングリン回したいんです(base_pos,base_rotの値を変える)。
# ↓はパーティクルのテクスチャ面がいつも投影面を向くようにしています。
for (Particle p=particle_begin(); i!=particle_end(); ++p) {
glLoadIdentity(); // 初期化
glTranslatef(base_pos.x,base_pos.y,base_pos.z); // 基準の位置
glRotatef(base_rot.x, 1.0f,0.0f,0.0f); // 基準の回転角 (1)
glRotatef(base_rot.y, 0.0f,1.0f,0.0f); // 基準の回転角 (2)
glRotatef(base_rot.z, 0.0f,0.0f,1.0f); // 基準の回転角 (3)
glTranslatef(p.pos.x,p.pos.y,p.pos.z); // パーティクルの相対位置
glRotatef(-base_rot.z, 0.0f,0.0f,1.0f); // 回転したテクスチャの向きを戻す (-3)
glRotatef(-base_rot.y, 0.0f,1.0f,0.0f); // 回転したテクスチャの向きを戻す (-2)
glRotatef(-base_rot.x, 1.0f,0.0f,0.0f); // 回転したテクスチャの向きを戻す (-1)
p.draw_particle(); // パーティクルの描画
}
でも、これだと回転軸が投影面に対して一致しないのでうれしくないと。
結構需要ありそうな処理なのでどこかにありそうなもんなんですが・・・。
0629デフォルトの名無しさん
NGNGGLfloat m[16];
glGetFloatv(GL_MODELVIEW_MATRIX,m);
glLoadIdentity();
glRotatef... // ワールドで回転
glMultMatrixf(m);
だめだっけ?
0630デフォルトの名無しさん
NGNG宇治社中改のサンプルとか。
0631628
NGNGちと当たって見ます。
0632628
NGNG知らなかった・・・。ビルボードで検索したらいろいろ出てくるなぁ。
>>629さん
結果は>>628と同じになりました。
>>630さん
原理的な説明はいろいろあったんですが、
これだと結局自前ですることになりそうです。
もう少し超簡単な方法がないか探してみます。
0633デフォルトの名無しさん
NGNGいや、
3D補講 - #13-平面への影の投影
にあるサンプルのソースの 3dmath.cpp とかではダメなの?
0634628
NGNGありがと〜。
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG何所かで手取り足取りのとこ見たような・・・。
0637デフォルトの名無しさん
NGNGちなみにVC++でGTK出来るか知ってる方いらして。
0638デフォルトの名無しさん
NGNGglutで文字を出したいんですけど・・・。
glutBitmapCharacter(void *font, int len);
で
byte bitmaps[][12] = {
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
・
・
・
とあるのを
glPixelStorei(GL_UNPACK_ALIGNMENT,1);
display_num=glGenLists(127);
for (i=32; i<127; i++){
glNewList(display_num+i,GL_COMPILE);
int len = ????
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, len);
glEndList();
}
としたいんですがlenの部分がどの様に変換したら良いか
悩んでいます。何か良い方法が在りましたら、お願いします。m(__)m
0639デフォルトの名無しさん
NGNG質問の意味がいまいち分からん。
glutBitmapCharacter()の第二引数は表示したい文字だろ?
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'A');
自分で作ったビットマップフォントを表示したいということか?
0640デフォルトの名無しさん
NGNGそうです・・・。
0641デフォルトの名無しさん
NGNGglBitmap()使え
0642デフォルトの名無しさん
NGNG作りたいんですけど、GLの設定などは何所で書けば良
いのでしょうか?
0643デフォルトの名無しさん
NGNG普通にWM_CREATEを拾えばいいのでは。
0644デフォルトの名無しさん
NGNGサブセットラッパーライブラリがあるんですけど、これの使い方
を説明したサイトとかないでしょうか。
これを使えば間接的ながらも、Glide/SGL/D3D/OpenGLそれぞれに
同じインタフェースでアクセスできるのでめちくちゃ気になってます。
Quake2はソースがフルで公開されてますが、巨大過ぎて自分にはどこから
たどっていけばいいのか見当もつきません。
0645デフォルトの名無しさん
NGNGZバッファ同士で内容を高速に転送させることはできるのでしょうか。
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG遅いので良ければglCopyPixels,glDrawPixels
高速なのはわからんなぁ。
extensionでも調べてくれ。
ただ入れ替えだけだったら他に方法があるかも。
0648デフォルトの名無しさん
NGNGglCopyPixels ではなくて glReadPixels ではないかと思ってみるテスト.
http://www.opengl.org/developers/documentation/man_pages/hardcopy/GL/html/gl/copypixels.html
http://www.opengl.org/developers/documentation/man_pages/hardcopy/GL/html/gl/readpixels.html
0649デフォルトの名無しさん
NGNGおぉ、そっちだった。
使ったことは無いがWGL_ARB_buffer_regionはどうだろう。
0650デフォルトの名無しさん
NGNGありがとうございます。
実はまだOpenGLは触ったことがないのですが、>>645に書いたことが出来るなら、
自作ソフトをOpenGLにも対応させるためにこれから勉強しようと思ってました。
でもハードウェアで高速に転送してくれるような機能は標準ではなさそうですね。
勉強しようかどうしようか・・・。
もうちょっと悩んでみます。
0651デフォルトの名無しさん
NGNG拡張機能の利用をためらってると OpenGL じゃなんもできんわよ。
0652デフォルトの名無しさん
NGNG||
∧||∧ モウ・・・ナヤムノ ヤメタ
( ⌒ ヽ
∪ ノ
∪∪
0653デフォルトの名無しさん
NGNG|| ∧ ∧
|| ( ⌒ ヽ
∧||∧ ∪ ノ
( ⌒ ヽ 彡 V
∪ ノ フワーリ
∪∪
0654デフォルトの名無しさん
NGNG0655
NGNGできれば(違ってもいいけど)wglを用いてるところがいいかもです。
0656フェイフェイ
NGNG日本語の参考書で赤本以外で使えそうなのってない?
0657デフォルトの名無しさん
NGNGwglの使い方ならmsdnで調べれば?
0658655
NGNGhttp://www.gamedev.net/community/contest/physics/entries.asp
物理現象シミュレーションコンテスト、どれも凄過ぎです・・
AquaDemoと Physics Demo と SandBox がお気に入りです。
0659!657
NGNG0660655
NGNGにしてもAquaDemoで球体から球体が分離して、またくっつくってな芸当を見せてくれたんですが、
どうやってるんでしょうか。ワイヤーフレームなんで、余計気持ちが悪い動きを見せてくれます。
PhysicsDemoレベルになってくると、物理学先攻じゃないと太刀打ちできないっぽいです・・
0661655
NGNGグラフィックボードによっては終了時に不正動作する事があるかもしれません。
0662デフォルトの名無しさん
NGNGただのメタボールのようだが。別にphysicsとは関係ないぞ。
0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNGよりによって最も技術的に面白くない3つを選んでるような……。
(他のも特に真新しいのないけど)
0666デフォルトの名無しさん
NGNG有名なdemo見せたら、655はひっくりかえるに一票。
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG3DもVoxel使って力技でなら楽そう
0670デフォルトの名無しさん
NGNGhttp://www.cim.pe.u-tokyo.ac.jp/~kawachi/thesis/mthesis_kawachi.pdf
http://www.d6.com/users/checker/dynamics.htm
http://cgi3.tky.3web.ne.jp/~tkano/rigidbody.shtml
http://homepage1.nifty.com/kaneko/
http://particlesystems.elemeta.com/
http://www.vividimage.co.uk/ActorDemo.htm
http://www.win.tue.nl/dynamo/
http://www.q12.org/ode/ode.html
せっかくなので、ブックマークから力学シミュ関連適当に拾ってみたぞ。
なんか他に面白いページあったら教えてクレー。粘土をクレー。
0671671
NGNGり付けようとすると、片方のウインドウに2つのviewが貼り付けられてしまい途
方にくれています。どなたかどのようにすればよいか教えてください。
お願いします。
0672デフォルトの名無しさん
NGNG0673671
NGNG0674デフォルトの名無しさん
NGNG素直に子ウィンドウ作れ
0675672
NGNG0676フェイフェイ
NGNGhttp://www.gametutorials.com/
0677デフォルトの名無しさん
NGNG寝る。
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG(´-`)。oO(微妙にしおれてるんじゃない?)
0680デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGって意味あるの?
glRasterPos2d(0.0, 0.0, 0.0);
となんら変わらないが・・・。
0683デフォルトの名無しさん
NGNGglRasterPos2d(0.0, 0.0);
じゃないか?
0684デフォルトの名無しさん
NGNGglRasterPos2dってglRasterPos3dのwrapperで
zに適当な値を入れて放り込んでるだけじゃない?
682はglRasterPos3dのzに0.0以外の値を入れて
回転させてみて、結果を2時間以内に報告すること。
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNGC#は無いと思うけど。
0688デフォルトの名無しさん
NGNGDelphi知らないが
http://www.delphi3d.net/
が良く引っかかるな。
0689MUI
NGNGglutCreateMenuで作ったメニューって、バグってません?
(一応最新のglut3.7.6使ってます)
メニューバーでクリック。
メニューがプルダウンする。
メニュー以外のところをクリック。
メニューが消える。(ここまでは良いとします)
んで、メニュー以外をクリック。
なぜかメニューが出現?
繰り返してるとエラー。
エラーの場所はmui.cの
void muiSetLocate(muiObject *obj, int state)
{
obj->locate = (short) state;
}
objが無いからエラーになってるっぽいので、
if文ではじくように定義(一応2通り試した)
if(obj == 0x000000) return;
if(obj == NULL) return;
ですが、はじいてくれません。
悩んでおります...。(--;
0690デフォルトの名無しさん
NGNGそのobjの値を調べてみるってのはどうよ。
0691デフォルトの名無しさん
NGNGCマガの99年5月に載っていたんですが、
DirectXでした.自分なりにOpenGLにしたんですが、
表示できませんでした。
何か、他に参考になるような情報はあるでしょうか?
0692691
NGNGまっくろくろすけが表示されるので、
法線ベクトルを逆向きにしてみたら表示されました。
DirectXとOpenGLじゃ法線ベクトルの向きが逆?
0693デフォルトの名無しさん
NGNGこんなんでどーよ。
ttp://isweb17.infoseek.co.jp/computer/sequoia/tsudoi/tsudoi06.shtml
0694デフォルトの名無しさん
NGNGttp://astronomy.swin.edu.au/~pbourke/modelling/polygonise/
marching cubesって特許有りそうなので注意かも。
Cマガに載ってたのってどんな方法?
0695691
NGNG有難うございます.微妙に,いや,結構違うんですね.
たまたま上手くいってラッキーでしたが,謎が解けそうです.
>>694
う〜ん,私がみたところ,全く同じアルゴリズムで,実装も同じです.
参考文献としておけば大丈夫ですよね?
0696デフォルトの名無しさん
NGNGデモとかで結構使われてるから金取らなきゃ大丈夫だと思うけど…(無責任)
よくよく考えるとメタボール自体ゲームで使われてるのって見たことないよねぇ。
興味があるならmarching cubes patentで検索掛けてみれば?
三角形で区切る方法もあるらしいがそっちほうはどうなんかな?
0697デフォルトの名無しさん
NGNG0698さんでぇ
NGNGglGetString(GL_EXTENSIONS)でハードがGL_EXT_texture3Dをサポートしていることは確認済みです。
OpenGL拡張関数を使用する場合には特別なヘッダとかライブラリをリンクしないといけないのでしょうか?
0699デフォルトの名無しさん
NGNGうーん。Extension は使ったことがないので分からないけど、
どういうエラーが出たかもうちょっと詳しく書いてみた方が良いのでは?
単にコンパイラの吐いたエラーをコピペするだけでも
(読む側にとっては)大分情報が得られると思うんだけど。
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG簡単に説明(windowsの場合)
nVidiaからglext.h持ってくる。(AtiだったらglAti.h?)
↓
include<glext.h>
↓
PFNGLTEXIMAGE3DEXTPROC glTexImage3DEXT;
↓
glTexImage3DEXT = (PFNGLTEXIMAGE3DEXTPROC) wglGetProcAddress("glTexImage3DEXT");
↓
glTexImage3DEXT(...)呼ぶ。
↓
(;´Д`)ハァハァ・・・
0702さんでぇ
NGNG有難うございました。
説明していただいた通り行ったらビルドできるようになりました。
感謝です。
0703デフォルトの名無しさん
NGNG3か月弱で 700 レスかー。
結構 OpenGL やってる人いるんだなー。
って、2001 年の2月からかよっ!!
これからタマにお世話になります。
どうぞよろしく。
0704デフォルトの名無しさん
NGNG高度なことはやりませんがね
0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNGglutと相性の良いものはどれですかね?
今、GLUI、FLTK、FOXをインストールして試してるんですが・・・
未だ、どれが良いか感触がつかめてません。
GLUIだと既存のソースに組み込みやすいんですが、スライダとかが無いのが惜しいですねぇ
上記3点以外にも良さげなツールキットをご存じでしたら教えていただけると有り難いです。
0707厨房
NGNGだれか赤本にかわる素晴らしいHPを教えて下さい。
0708デフォルトの名無しさん
NGNGK&Rみたいなもんかも。
0709デフォルトの名無しさん
NGNGttp://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html
0710デフォルトの名無しさん
NGNGglut のシンプルさは好きなんだけどなあ.
せめてテキスト入力欄だけでも...
0711デフォルトの名無しさん
NGNGglutにそういう機能を組み込んじゃうと、シンプルさが失われるのでは?
テキスト入力だけで良いならGLUIが簡単で良いかも。
ttp://www.cs.unc.edu/~rademach/glui/
ファイル選択ダイアログとかだと、FLTKやFOX、wxWindowsを使わないとダメかなぁ・・
0712デフォルトの名無しさん
NGNG詳しい方はいらっしゃいますでしょうか?
モデル行列にスケールを掛けれるようにしてスケール値をいじると
(元は1.0,1.0,1.0を0.5,0.5,0.5に変更等)
面の明るさが変わってしまうのですが、こういうものなのでしょうか?
ライトはGL_POSITIONなライトが視点のずっと手前に1つあるだけです。
スケールを小さくすると明るくなり、大きくすると暗くなります・・・
流れ的には
glMatrixMode(GL_PROJECTION);glLoadIdentity();glPerspective();
glMatrixMode(GL_MODELVIEW);glLoadIdentity();ライト設定
モデルの座標、回転、スケール設定;モデル描画;
という感じなのですが・・・ (T-T)
0713デフォルトの名無しさん
NGNGを目指すものであります。
http://jbbs.shitaraba.com/sports/1923/avkafuzoku.html
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNGglEnable(GL_NORMALIZE);
を呼ぶとか。
0716デフォルトの名無しさん
NGNG>>712
単に、スケールを大きくすると、視点が光源から離れるから暗くなるだけでは?
モデルから反射光量が少なくなると言うか・・・なんと言ったらいいのかな。。
的はずれだったらスマソ
0717デフォルトの名無しさん
NGNG早速お返事ありがとうございます!
まさに glEnable(GL_NORMALIZE) を付けたら直りました!
与えている法線自体は Normalize してある値だったのですが
スケールが法線の値に対しても影響している。ということなのですね。
納得いたしましたです。ありがとうございます。
質問ばかりでは申し訳ありませんのでちょっと考察&速度比較をば。
glEnabel(GL_NORMALIZE) は毎法線 Normalize していそうなので
けっこうコストが高いのかなぁと思ってみたりしたのですが・・・
Enable/Disableを
試してみましたところ検出できる程度の速度差が出ませんでした・・・
テスト環境が GeForce なのでハードで処理されているのかもしれません。
ハードウェアのサポートが受けられない環境では
スケール値が 1.0,1.0,1.0 でない場合のみ glEnable(GL_NORMALIZE)
の方が親切なのでしょうか・・・
となるとハードウェアのサポートが受けられる環境では
CPUで動的に法線を生成しているような場合は
CPUでわざわざ Normalize しないほうが早くなりそうなですね・・・
また何かありましたら教えを乞いに参上するかもしれません・・・
0718デフォルトの名無しさん
NGNGglEnable(GL_NORMAL) しっぱなしで行こうと思います。
今後ともよろしくおねがいします。(^-^;
0719デフォルトの名無しさん
NGNG>glutにそういう機能を組み込んじゃうと、シンプルさが失われるのでは?
確かに, おっしゃるとおりです(w. が, 欲しくなるのは単なるわがまま ?
glui は 1 度断念したんだけど, 理由が思い出せず.
0720デフォルトの名無しさん
NGNG>が, 欲しくなるのは単なるわがまま ?
テキスト入力やファイル選択はGraphic Libraryの範疇じゃないので、
別にするべきだと思いますけど。
>glui は 1 度断念したんだけど, 理由が思い出せず.
gluiがダメだとなると、FLTKその他を使うのは難しいかも、、。
0721デフォルトの名無しさん
NGNGディスプレイリストをglDeleteListsで
消去してもメモリが解放されないのですが。
こんなものなんでしょうか?
0722デフォルトの名無しさん
NGNGファイル選択ダイアログ程度なら各OSのAPIを直接呼んだ方がいい気が
しますけど…。なにか理由があるのかな?
>>721
どういう環境で、どこのメモリをチェックしてます?
(そして、そこはその環境下ディスプレイリストが作られる場所ですか?)
0723デフォルトの名無しさん
NGNGG400だったりする?
0724デフォルトの名無しさん
NGNG暇なのでやってみた。
作ったリストは、再帰の回数を増やすとだんだんキレイな球体になっていくやつ。
8*(4^3) ポリゴンでは変化が見られなかった。
8*(4^6) ポリゴンでシステムメモリに2MB程度の変化が起きたよ。
GeForce3Ti200@WIN98
メモリは極窓のVer情報で確認したので、ちょと大雑把だと思う。
よくわからないけど、>>721の作ったリストが容量を食わなかったとか。
リストを「作る⇔消す」じゃなく「作る⇔作らない」での変化も見てみたらどうでしょ。
ちなみに、ゲー作の方も見てますがなんとなくこっちに(藁
0725722
NGNGなっているということね。(OpenGL2.0ではその問題は解決されるらしい)
http://opengl.org/developers/faqs/technical/displaylist.htm#0140
0726724
NGNGこれはN-BenchVer2 の起動画面で。
ビデオメモリには変化無かったです。
0727デフォルトの名無しさん
NGNGUnix にはそういうものがない気が.
あ, readdir() とかでディレクトリをなめて自作しろってことですか ?
0728デフォルトの名無しさん
NGNGあなたの環境下で提供されている適当な任意のツールキットを使ってください。:)
Win32と違い、Unixそれ自身も、OpenGLも(あなたの期待するような)ツールキット
の機能を提供していません。特定のAPI体系がなぜそこに切り分けられているか
をよくよく考えてみることです。
もし、WindowsでもUnix系のOSでも通るようなソースを御気楽に書きたいなら、
GLUIかFLTKでも使われることをお勧めします。公約数的なGUIなのであまり
使い勝手がいいとはいえませんが…。またはそれらのツールキットはソースが
提供されているので、ソースコードを見て御自分で使いやすいように書き換えるとか。
0729デフォルトの名無しさん
NGNG>の機能を提供していません。特定のAPI体系がなぜそこに切り分けられているか
>をよくよく考えてみることです。
何の話してんの ?
0730○
NGNGマルチテクスチャのチュートリアルサンプルとかないかなぁ。
0731デフォルトの名無しさん
NGNG>>710のレスから流れを追ってみてくだされ。
0732デフォルトの名無しさん
NGNG719 までは glut とか glui への GUI の機能拡張の話で,
720 が何の脈略もなく Graphic Libraryの話を持ち出して.
以下話がかみ合ってないように読めるが ...
0733デフォルトの名無しさん
NGNG「Graphic libraryであるGLUTに、ファイル選択や
テキスト入力の機能を入れるのはおかしい」
と言ってるだけでは?
>>728の、
「特定のAPI体系がなぜそこに切り分けられているかを
よくよく考えてみることです」
も同じようなことを言ってるように思えますが。
0734デフォルトの名無しさん
NGNG教えてください。
0735デフォルトの名無しさん
NGNGOSは?
たいていの情報はttp://www.opengl.orgで見つけられます。
0736デフォルトの名無しさん
NGNGああ, なるほど.
多分 glut を toolkit と考えた 719 と Graphic library と
考えた 720 の間では, 話はかみ合わんと見た.
0737デフォルトの名無しさん
NGNGwindowsだったら95以外は標準で入っている。
開発するなら話は別だが。
0738デフォルトの名無しさん
NGNGOSはWin98です。
>>735さんの教えてくれた所見たら何とかなりそうみたいです。
ありがとうございました。
ちなみに、OpenGLって、C++分かってる必要あるのでしょうか。
解説書2冊ほど目次だけ見たら、どっちもVisual C++が出てたので。
0739デフォルトの名無しさん
NGNG回答ありがとうございます。
え〜と、システムはWindows XP,2000で
Geforce3とかGeforce2MX400とかです。
FoxというGUI ToolKitをVisual C++でコンパイルしてます。
またメモリはタスクマネージャーの
メモリ使用量で見てるだけです。
それでデータはdouble型
36000点の3次元頂点と、7万ポリゴンくらいを
ディスプレイリストで作っています。
このデータだけなら10MB程度のメモリ使用
するのですが、
ディスプレイリストを作るとさらに70MBくらい
メモリを使用します。
でも同じデータをもう一個読み込んでも10MB
増えるくらいで、再び70MB取ることはないです。
この状態でデータをクリアしても、20MB分は
解放されるのですが、ディスプレイリストで
確保されたメモリは解放されないようです。
下のような理由なのかな〜。
ttp://www.gimlay.org/~andoh/opengl/oglfaq/displaylist.htm#0140
0740デフォルトの名無しさん
NGNGキーボード, マウスのイベントを捕まえる機能を graphic library と
言い切るのは変だろ,
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNGglutはもともと"グラフィックライブラリ"ではないと思うけど。
>>741
glutCreateMenu, glutAddMenuEntry, glutAttachMenu
で一応メニューが作れます。
0743デフォルトの名無しさん
NGNGhttp://www.gimlay.org/~andoh/opengl/glut/section06.html
0744デフォルトの名無しさん
NGNG710のレスから流れを追ってみてくだされ.
特に 720 と 733.
0745デフォルトの名無しさん
NGNGコンテキストハンドルをグローバル変数にしたり、いろいろやったが駄目だった。
こまったのぉ・・・
0746デフォルトの名無しさん
NGNGスレッドごとにカレントコンテキストがありますよん。
おそらく排他処理されてるだろうけど・・・あまりお勧めしない
0747745
NGNG問題ないはずなんだが。
glの複数のコンテキストをwglMakeCurrent()とか使って
ひとつのwinデバイスコンテキストに統合できないかなぁ。
0748デフォルトの名無しさん
NGNG使えなかったりしないかねえ。
0749デフォルトの名無しさん
NGNG>ファイル選択ダイアログ程度なら各OSのAPIを直接呼んだ方がいい気が
>しますけど…。なにか理由があるのかな?
そういうAPIにしまりのない奴のソースを見ると、
いきなり DWORD とか書いてあって萎えることが多い。
で、しまいには「GLUT使いにくいよ! Win32API で書こうよ!」
とか言うんだ。
……いや、被害妄想なのはわかってる。聞き流してくれ
0750デフォルトの名無しさん
NGNGそうじゃなければモジュールきっちり分ければ良いし
0751デフォルトの名無しさん
NGNGそのような命令は標準で用意されていますか?
描画前に、必要なプレーンのみのデータを含むバッファを用意しないと無理なのでしょうか?
0752デフォルトの名無しさん
NGNGglColorMaskとかそういうこと?
0753デフォルトの名無しさん
NGNGあ、そのまんまの名前の関数があったんですね・・(汗
glColorMaskで希望通りの描画を実現出来ました。
どうもありがとうございました。m( )m
0754デフォルトの名無しさん
NGNGGEFORCE256とかでもハード対応してますか?
( CopyPixelsがソフトエミュレーションになってしまった
記憶があったので、見込み薄に思いましたが、、、)。
0755デフォルトの名無しさん
NGNGだとしたら、これを加算に変更する事や別のブレンドモードにする事は可能ですか?
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGGeforceだけではなく、TNTまでもPBufferをサポートしているらしい。
http://developer.nvidia.com/view.asp?IO=gdc2001_pixelbuffers
0758デフォルトの名無しさん
NGNG確かにそう記載されてますね、、以外でした。
俄然、やる気出て来た(W
ありがとう。
0759デフォルトの名無しさん
NGNG素で間違えてるぅ・・・。
0760デフォルトの名無しさん
NGNGつまりt(R,G,B)と色をもっているテクスチャをt(R,R,R)で描写するとか(結果赤成分だけのモノクロ)。
nVidia限定やProgramableShaderの利用でもかまいません。
0761デフォルトの名無しさん
NGNG斜めに対角線みたいな線が一本出ちゃうことがあるんですが
これ何が間違ってるんでしょうか。
scale上げてってポリゴンが画面からはみ出すと、その線が増殖するんですよ。
とっても醜くて困っちゃいます。
0762デフォルトの名無しさん
NGNGただglColorで表示したい色1にして書けばいいのでは?
0764デフォルトの名無しさん
NGNG>>760の希望は、例えば赤成分だけをグレイスケールで
表示したいということなので、マスクしただけではダメなんじゃないかな?
マスクしただけだと、赤色の濃淡表示だけになってしまふ。
0765デフォルトの名無しさん
NGNGそのためにglPixelMap()って書いてるのに〜・・・。
0766762
NGNG0767デフォルトの名無しさん
NGNGRGBのうち、RG成分だけをグレイスケールで表示するには
どうしたらいいんでしょう?
glPixelMap()って、RGBどれか一つだけしかINDEXにできませんよね?
勘違いしてたらスマソ。
#コーディング例も載せて頂けると大変嬉しいです・・・。
0768デフォルトの名無しさん
NGNGう〜ん、そーだったかも・・・。
今、赤本が手元に無いので、家帰ったら見てきます。
0769デフォルトの名無しさん
NGNG>見たこと無いな、、ボード何?
えと、TNTとGeForceで出ちゃうんですよ。
ただ昔は出なかった記憶があるんですよね。
なのでコーディングの仕方に問題あるかもーと思って質問しました。
0770デフォルトの名無しさん
NGNG複数カラーバッファ間の変換手段は無い
・・・と思う(弱気
アクセラレーションの範疇で、
モノクロ化出来る方法があるのなら、ぜひ俺も知りたいけど。
0771デフォルトの名無しさん
NGNGもう少し詳しく聞きたいのだけど、
>RGBのうち、RG成分だけをグレイスケールで表示
というのは、レンダリングした、もしくはレンダリングするR, Gの色をグレースケール化
( 明度 = 0.299 * R + 0.587 * G でレンダリング、みたいな)って事ですか?
# 一度描画したものを取り出して…とかではないアクセラレーションの範疇なら、
# ベンダ拡張使う(NVIDIA社のRegister Combinersとか)とかしかないのかなぁ…
# クソレスですまん。
0772デフォルトの名無しさん
NGNGGL_TRIANGLE_FAN で word around してみてはどうでしょう
0773デフォルトの名無しさん
NGNGピクセレシェーダーなら簡単だYO!
0774デフォルトの名無しさん
NGNGピクセルシェーダってアルファ以外の各チャンネルを個別に操作できったけ?
操作する方法があれば教えてYO!
0775デフォルトの名無しさん
NGNGすいません、word around ってなんでしょうか。
0776デフォルトの名無しさん
NGNGある手段がうまく行かないときに用意しておく手段、という意味のつもりです。
この場合は、GL_QUADSの代わりにGL_TRIANGLE_FANを使うということを意味します。
つまり
glBegin(GL_QUADS)
glVertex() * 4
glEnd()
を
glBegin(GL_TRIANGLE_FAN)
glVertex() * 4
glEnd()
に置きかえるということです。
0777デフォルトの名無しさん
NGNG見て来ました。
やっぱり、 カラー指標>カラー指標
カラー指標>R
R>R
だけですね、、、
勘違いでした、スマンでち。
カラー指標>カラー指標ならモノクロ化は出来るけど、価値は無し、、、(終)。
0779age
NGNG0780デフォルトの名無しさん
NGNGカレントのマルチテクスチャを切り替えるっていう手法じゃないですか。
これってglActiveTexureを発行した後にマルチじゃないテクスチャを
操作したい(マルチテクスチャを無効にしたい)場合ってどうすれば良いんでしょう?
マルチテクスチャについての日本語ドキュメントは何に等しい状態だし、
自分の認識が間違っていてトンデモかもしれませんが・・・。
0781デフォルトの名無しさん
NGNGEXT_texture_env_combine等でチテクスチャの結合設定を変える。
よく知らんから、くらいしか思いつかんなぁ。
0782デフォルトの名無しさん
NGNGまたもやOpenGLがベンダー依存に…。
まぁ、アマチュアプログラマには良いけど。
0783デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNG内容見た人いたらplz
0785デフォルトの名無しさん
NGNG基本的にはシェーダーアセンブラを置き換えるものであって、
3DAPIと置き換わるものではないよ。
現時点のDirectX8レベルのシェーダーアセンブラでは必要ない
んだろうけど、今後複雑化するにしたがってこういった仕組みが
必要になるだろうから、今回のβリリースはその予告編…って
感じかな。(他のベンダへの牽制って意味もあるだろうけど)
しかしcodeplayのオトナゲない対応には藁った。
http://www.codeplay.com/press/cg_rel.html
0786デフォルトの名無しさん
NGNGこれってC言語で使えるんだよね?
VCとかBCとかで
0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNG仕事で使ってるよ。ゲームじゃないから高度なことはやらんけど、3Dなアプリ作るのに便利。
0789デフォルトの名無しさん
NGNGサンクス
100レスまでさらっと読んだんだけど,
おすすめの書籍ってありますか?
VC++でC言語のみ使えるんですが
いちおうY座標は,上は正の値くらいはわかるんですが
0790デフォルトの名無しさん
NGNG利用できないんでしょうか?分割するしかないですか?
AGPメモリに入れればよいのかと思ってwglAllocMemoryとか使ってみましたがアウツでした。
0791デフォルトの名無しさん
NGNGVC++だけで一応アプリは書けるです。
本は読んだことないけど基礎的なことはネット上サーチすると、
やさしいチュートリアルとかいっぱいある。
個々のAPIはVCのヘルプ見まくり。
おれはライトとかマテリアルの使い方が未だによく分かってないけど、
その辺はちゃんと本でも読まないとダメかも。
まぁGL自体よりも算数とか忘れきってて悩むことの方が多い感じw
0792デフォルトの名無しさん
NGNGOpenGLは、そのまま使うよりも、glutを使う方が便利です。
で、glutを手っ取り早く使いたいと思うのなら、
GLUTによる「手抜き」OpenGL入門がオススメです。
ttp://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html
0793デフォルトの名無しさん
NGNGで、ポリゴン表示してテクスチャをペチョっと貼るトコまでは来たんですが、
アルファ画像指定してあるポリゴンの表示でつまづいてます。(髪の毛とか)
とりあえず目標は ↓の女騎士を表示するコトです。
ttp://www.geocities.co.jp/Playtown-Spade/7188/3d/down_mqo.html
で、
■テクスチャ画像見るとUV駆使して一枚になってる
■アルファ画像も同様
■モデルの部分毎に材質分けされてない
こーゆー場合にあるポリゴンが不透明か半透明かを判定するのって、
どーしたらいーでしょう?それとも何か他の方法があるんでしょーか?
0794デフォルトの名無しさん
NGNG■ 調べたり考えたりしてみた方法その1(失敗)
不透明のポリゴンを全部描いてから、glDepthMask( GL_FALSE )して
半透明のポリゴンを描画する。
不透明か半透明かが判定できてないので無理だった。
■ 調べたり考えたりしてみた方法その2(やり方ワカラン)
一番奥のポリゴンから順番にBLEND付きで全部描画する。
向きとか変わると順番が入れ替わるので、やり方ワカラン。
何か別のエレガントな方法とかあったら是非教えてください。
0795デフォルトの名無しさん
NGNGありがとう
とりあえず日曜日にしょうてん見ながらやろうかと思います
0796デフォルトの名無しさん
NGNGOpenGLでは、現在の各変換行列の中身を取り出すことは出来ないのでしょうか?
行列出入力関係のOpenGL関数は、glLoadMatrixで変換行列を置き換え、
glMultiMatrixで変換行列の掛け算を行う物位しか無いみたいなのですが。
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNGおおおお!ありがとうございます!!
ちゃんとあるんですね。当然と言えば当然か・・・。
でも、国内のOpenGL系のサイトを当たっていても、ほとんど
自前で行列を扱っているところが見あたらないのが厳しいですね。
Win32のOpenGL本にも全然出てこなくて、げんなり来ていました。
なまじ平行移動とか回転とかあると、みんな使ってしまうのかな・・・。
はっきり言って3次元で何かしらの姿勢計算を自前でしたい場合は、
直接行列を扱わないことにはどうにもならないのに。とにかく助かり
ました。どうもです。
0801デフォルトの名無しさん
NGNG当たり前すぎて、説明しないだけ。
もっとも行列すらわからないやつもいないけどな。
0802デフォルトの名無しさん
NGNG余計なお世話かもしれないけど,
「国内のOpenGL系のサイト」「Win32のOpenGL本」という探し方がまずい.
まずは赤本を見ないと.
0803デフォルトの名無しさん
NGNGfloat型の配列に書き戻す関数or手段はありますか?
0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNG0807まんせー
NGNG0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNG32x32より大きい(64とか)のテクスチャを90°(270)回転すると倍くらいスピード落ちます
環境はマックiBook/300でopenGLとQT3Dでこの現象を確認したので
カードのせいかなとか思ってますが、なんか知ってる方教えて下さい。
0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNGテクスチャの色より明るくできないの?
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNG0821813
NGNGおとなしくなるべく明るい手エクス茶を使う、どうしてもやりたきゃ
半透明白ポリゴン重ねるってことで妥協してる。一応ありがとう
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG変だぞ。普通に検索してトップじゃん・・・
0828デフォルトの名無しさん
NGNGそれらしいもんはみつかんなかった
確かに匿名の掲示板じゃ甘えがでてるかもな
自分で何とかするわ
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNGWin2000+VC++6の環境で開発してたんですが、
WinNt4.0、Win98で実行するとエラー(glGenListsがGL_INVALID_OPERATION)が出て、
OpenGL32.dllのバージョンの違いかなと思い、
2000からOpenGL32.DLLをコピーしてみました。
すると、NTでは重たいものの何とか動作するようになったんですが、Win98では、
「OpenGL32.DLLは欠落エクスポートGDI32.DLL:GdiSwapBuffersにリンクされています」
というエラーが出てしまい困っています。
WinNT4.0、Win98でOpenGL周りのDLLをアップデートする一番スマートな方法って、
どうしたら良いんでしょうか?
DL先など調べてみたんですがMSのサイトにも無いようで、どなたかご存知の方教えて下さい。
0832デフォルトの名無しさん
NGNGWin98でもglGenLists普通に動いてるけど?
0833デフォルトの名無しさん
NGNG他のところでエラーが出てるかも知れないよ。
ちゃんとエラーフラグクリアしてからglGenLists呼んだ?
0834デフォルトの名無しさん
NGNGOpenGL32.dllはビデオカードのドライバごとに変わる。
NT/2000なら何とか互換性はあるけど、Win98何かに入れたら
動かなくなるのは当たり前。生兵法なんてせずに、大人しく
ビデオカードのドライバを最新にすれ。
0835デフォルトの名無しさん
NGNG分かりました。ぞれぞれやってみます。
ありがとうございました。
0836デフォルトの名無しさん
NGNGopengl32.lib glu32.lib glut32.lib glui32.lib を
「プロジェクト」→「設定」→「リンク」タブ内に追加
ってのはBCCではどうやればいいんでしょうか。できるんでしょうか。
その前に glui32.lib が見つからないし、VC++が無いとダメなんでしょうか。
「glui32.lib」をGoogleにかけたら2件しかヒットしないし・・・。
いろいろ試したのですが何分アホアホ君なので光明見えずといった感じです・・・。
方法を知ってる方いたら教えてください。お願いします。
0837デフォルトの名無しさん
NGNGglui以前にglutは使えてるわけ???
glut32.lib glui32.libはVC++にも付いてないよ
内容からしてBCCの勉強の方が先のような気が…
0838836
NGNGglutは使えてます。
>内容からしてBCCの勉強の方が先のような気が…
おっしゃる通りです。Cの勉強自体最近始めたので・・・
自分でも背伸びだよなーとは思ってるんですが。
はっきり言って初心者には不向きでしょうか・・・。
おとなしく先送りした方がいいですか?
0839デフォルトの名無しさん
NGNGとりあえず、glui.lib見つけてきて、ソースに
#pragma comment(lib,"glui32.lib")とでも追加してみれば?
0840836
NGNGありがとうございます。試してみます。
と思ったら glui.lib がありません・・・。
やっぱVC++使うかgluiを諦めるかでしょうかねえ・・・。
0841836
NGNG2 .rspファイルを作る
3 tlib glui32.lib @glui32.rsp
とやったら51KBの glui32.lib ができたんですがこれでいいんでしょうか?
0842デフォルトの名無しさん
NGNGすまん、実はgluiもBCCも使ったことない。勘で答えてるだけ。
だが、51KBは小さすぎ。間違ってるような気がする。
一応使えるかどうか試してみれば?
あとglui32.libあるよ??ウェブ全体から検索しなされ。
VC++用のライブラリでBCCでは使えないのであれば、
implib(だったかな?)で変換
日本ではOpenGL自体使ってる人が少ない上にgluiとなると・・・
0843836
NGNGレス&情報どうもです。
glui32.libも見つけて試したんですがどうにもこうにも使えないので、
やっぱりC自体とBCCに詳しくなるか
VCを使うようになるまで見送ることにしました。
先にCとglutを習得することにします。
このスレでもgluiの話題は少ししか出てないようですし、
みなさん様子見なんでしょうか。。。
0844デフォルトの名無しさん
NGNGもし VC 用の glui32.dll とかがあれば, implib して
Builder の Lib フォルダ以下の Platform SDK とかにつっこんどけば
デフォルトで見てくれないか ?
様子見というより, あまり glui を使ってもうれしくない気がする.
あと OpenGL を使っている人はたくさんいると思うけど, このスレとか
ML とかは活気がない. 新しくはじめる人は DirectX に流れてるのかな.
0845デフォルトの名無しさん
NGNG解説本はあっても、やけにマニアックだったりSGIマンセーM$イってヨシ
とかいうノリだったりするし。
0846デフォルトの名無しさん
NGNGって奴はそれなりによい感じですた。
0847OpenGL!
NGNG0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNGLinux用移植版のmesaのソース見てもどこが該当するか分からなかったです・・
一般的な3Dのアフィン(affine)変換だと物体に対する変換なので、glRotetefみたいな
座標系に対する変換は実現できませんよね?
例えばx軸周りに30度回転させてy軸周りに15度回転させるというのはアフィン変換だと
回転の順序を変えられないけど、glRotetefだと順序は関係なく変換できますよね?
ここんところかなりはまっています。誰かお助けを。
0850デフォルトの名無しさん
NGNG式は赤本に書いてある。
式の解説は"任意軸" "回転"をキーワードに探せば見付かると思うけど。
0851デフォルトの名無しさん
NGNGレスありがとう。
任意軸周りの回転といえばQuaternionですが、それとは違う式ですか?
0852デフォルトの名無しさん
NGNGhttp://ask.ii.uib.no/ebt-bin/nph-dweb/dynaweb/SGI_Developer/OpenGL_PG/@Generic__BookTextView/37451
この式だとアフィン変換と同じなのに結果が違うとは。。
0853デフォルトの名無しさん
NGNG>>glRotetefだと順序は関係なく変換できますよね
なの ? まずそこから疑うべきでは.
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNGOpenGLってバックバッファを直接いじれるんですか?
できれば合法的に..w
0856デフォルトの名無しさん
NGNGOpenGlを使って、画面に表示したいのですが
VRML側 OpenGl側
translation 10 10 10 → glTranslatef(10,10,10)
rotation 10 10 10 3.14 → glRotatef(180,10,10,10)
scale 10 10 10 → glScale(10,10,10)
上記の関数はそのまま書き換えて、同じ結果が得られるのでしょうか?
もしだめな場合はどうすればよいのでしょうか?
よろしくお願いします。
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNGglDrawPixels/glReadPixels
0859デフォルトの名無しさん
NGNGおお!ありがとう試してみます
0860859
NGNG言い方が悪かったみたいです。
バックバッファのポインタを取得したいって事でした。
0861デフォルトの名無しさん
NGNGOpenGLの仕組みからして、APIを跨ってメモリ空間を共有することは無いんじゃないかな。
基本的に、OpenGLが持つメモリ空間は、アプリケーションからは
独立していると考えたほうがいいと思う。
そういうDirectアクセスが最初はウリだった"Direct" Xも
最近は直アクセスをしない方向に向ってるからねえ。
つーか、何がしたいの?(笑)
0862859
NGNGモザイクとか主に視覚効果ですね。具体的にはまだ決めてませんけど
できたら自由度が広がるなって事でw
0863859
NGNG0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNGどうしてもやるなら glReadPixels→弄る→glDrawPixels ということになる
けど、相当なペナルティになると思う(嘘かもしれないから実験してね)。
モザイクだったらテクスチャにレンダリングしてnearestフィルタで・・・
とか思いつくけど、例えばセピア色にするとかだとTextureShader使わないと
無理かもしれん。白黒テクスチャにレンダリングして色ブレンドでもいいか?
0866859
NGNGテクスチャ>必要範囲の原画像取ってきて加工してポリゴン描画ですか?
0867859
NGNG0868デフォルトの名無しさん
NGNG組み合わせて「全てビデオカード上で」やるしかないよ。組み合わせが
トリッキーになるけど、速度は最高だと思う。
0869859
NGNG長々と有り難うございました。
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNG両方新品を買うと首吊りそうです
0872デフォルトの名無しさん
NGNG買うのならとりあえず、赤本だけでいいと思うけど。
リファレンスは
http://ask.ii.uib.no/ebt-bin/nph-dweb/dynaweb/SGI_Developer/
このあたりで見ればいいんじゃない?
(リファレンスとして使えるのは UNIXの manコマンドなど他にもあるし)
0873デフォルトの名無しさん
NGNG赤本だけでいいんですか。
サンコク。
0874デフォルトの名無しさん
NGNGhttp://ask.ii.uib.no/ebt-bin/nph-dweb/dynaweb/SGI_Developer/OpenGL_PG/
0875デフォルトの名無しさん
NGNG0876デフォルトの名無しさん
NGNG利点と欠点教えてください〜
一応ageときます
0877デフォルトの名無しさん
NGNG欠点:Windowsゲームに特化してるわけではない。音関連などは含まれていない。
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNGとかやってウインドウをメモリに保存しようと必死なんですが
初期化したままの配列が返って来て泣きそうです。
マニュアルにglBeginとglEndの間に使うなとか書いてあった気がしましたが
外に何か気をつける事あるでしょうか。おしえてくださいお願いします〜
0881デフォルトの名無しさん
NGNGglReadBufferは大丈夫?
GL_RGBで指定してGL_BITMAPって・・・
GL_BITMAPとwindowsのビットマップとは違うって分かってるよね?
glGetErrorやってもエラー帰ってこない?
GL_UNSIGNED_BYTEに変えても取れない?
とりあえず(´・ω・`)ショボーン
0882デフォルトの名無しさん
NGNGGL_UNSIGNED_BYTEに変えたら取れました
どうもありがとうございました!
ヽ(´ー`)ノ初心者は赤本の前にglGetErrorだ
0883デフォルトの名無しさん
NGNG0884お願いします。
NGNG変換したいんですけど、どうやればいいのかさっぱりです。
誰か教えてください。
0885デフォルトの名無しさん
NGNG視点からの半直線あるいは三角錐になると思うですが
そのへんの認識はどうですか
0886デフォルトの名無しさん
NGNGオブジェクト選択には、glSelectBufferという便利なのがあるよ。
俺が言えるのはそれだけ。
0887お願いします。
NGNG>886さん
ありがとうごさいます。
えっと、CPointでマウスクリックした点は取れるじゃないですか
そのポイント例えば、CPoint(150,150)などをワールド座標に
変換したいんですよ。スクリーン座標からワールド座標の変換ですね.
DirectXを使わないでやりたいんです。
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG885 の言ってることは理解してるか?
0890お願いします。
NGNGすいません、どうにもうまくいかないので
できれば、誰かサンプルソースなどを上げてくださる
とありがたいのですが
0891デフォルトの名無しさん
NGNG886 が言ってる関数を使ったサンプルをweb等で探すとよいよ
あとは赤本、青本をあたるとか
0892デフォルトの名無しさん
NGNGMFC使ったことないので分からんのだが
普通(?)の初期化と描画方法じゃ駄目なわけ?
いままでglutしか使ったことなくて、
初期化や描画方法そのものが分からないっていうのならVCのヘルプに付いてる
Platform SDK→OpenGL→Win32 Extensions To OpenGLを参考に
Platform SDK→OpenGL→A Porting Sample→The Program Ported to Win32
のソースをMFCに当てはめて考えてみては。
素直にgoogleで調べた方が速いような気もする
そんなんじゃないよーって言うならこれ→(・ε・)
>>890
変換だけなら手抜きソースを・・・
GLdouble winx,winy,winz,model[16],proj[16],x,y,z;
GLint view[4];
glGetDoublev(GL_MODELVIEW_MATRIX,mode;); // 現行モデルビューをゲト
glGetDoublev(GL_PROJECTION_MATRIX,proj;); // 現行プロジェクションをゲト
glGetIntegerv(GL_VIEWPORT,view);
winx = 150;
winy = 150;
winz = 0.5; //深さ 通常0〜1?
gluUnProject(winx,winy,winz,,winz,model,proj,view,&x,&y,&z);
そんなんじゃないよーって言うならこれ→(・ε・)
0893デフォルトの名無しさん
NGNG普通にCViewの派生クラスのOnCreateあたりで初期化すればよいと思う。
もしMFCのサンプルをさがしているのなら、
http://www.gamedev.net/reference/programming/features/3dmfc/
を参考にしてみれ。
0895デフォルトの名無しさん
NGNGオブジェクトの移動とかビューの回転とか
ビュワーを作る上で最低限必要な関数とかをまとめた
ライブラリorサンプルソースってあります?
SorceForge探したけどいいのがありませんでした。
0896デフォルトの名無しさん
NGNGワールド座標で領域を指定して(立方体など)
切り抜くことって可能ですか?
0897デフォルトの名無しさん
NGNGopengl CSG
あたりで検索してみては
0898デフォルトの名無しさん
NGNGありがとうございます。調べてみます。
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG0901初心者
NGNGOpenGLで作ったテクスチャをジョイステックで操作するって可能なんでしょうか?
具体的には画面上に作ったサイコロをジョイステックの動きに合わせてグリグリ回すようなプログラムなのですが
0902初心者
NGNG作ったプログラムをMACにも移植可能にせねばならないので、開発をDirectXからOpenGLにしたのですが、この判断は正しいでしょうか?
うる覚えですがDirectXはWINDOWS上でしか動かせられないと聞いたので…
0903デフォルトの名無しさん
NGNGOpenGLはレンダリングしかしない。よってスレ違い。
>>902
おそらく正解。機種依存部分について考慮しながら設計するとよい。
0904デフォルトの名無しさん
NGNGそれで、これにかわる機能ってありません? GLUのNURBSインターフェイスはパフォーマンス悪そうやし、マルチテクスチャに対応してない。nVidia依存で結構です。手軽な曲面生成ようの機能ってありませんか?
0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNGすることってできますか?
ウィンドウの右端に縦のラインを引くとか。
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNG頂点の変換が絡むんで
正確にそのポイントを塗りつぶすのは難しそう
0910デフォルトの名無しさん
NGNGなーるほど。glOrtho()かぁ。
1ドットもズレちゃいかんてことないので
うまくやればできそうですね。サンクス
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGむずいねー。よく tangent space とか出て来るけどこれどういう
意味かわかる?あと half angle もよく分からんけど、わかる?
0914デフォルトの名無しさん
NGNG読んだ。半分分かった。
half angleはスペキュラー計算するのに使うんでんでない?
ライティングの式見ればわかるよ。
tangent spaceは…
曲面で考えた場合にu,v,法線方向をaxis(軸)に見立てて
そのローカル座標にライトの位置を変換してやると、
曲面に貼られているテクスチャに対するライトの位置が手に入ると。
(テクスチャは曲面のu,v方向に貼られているという条件で)
俺はこんな解釈でいるけど違うかもしれん…
0915デフォルトの名無しさん
NGNGこれはATIからの使者の攻撃ですか?
0916913
NGNG遅レスになったけど、もう一かい見てみる。でついでに聞くけど
このなかで単に product って出て来るけどこれって他の赤本
なんかでcross product って読んでるもんなのかねえ?
0917デフォルトの名無しさん
NGNGglutSpecialFuncのコールバック関数で分岐させると片方しか検出してくれません。
どのようにすれば両方を検出してくれるのでしょうか。
OSはVine Linuxです。
0918デフォルトの名無しさん
NGNG両方のカーソルキィの状態をグローバルか何かで保持しておき、&&で同時だと認定知るのはどうだ?
あと、イヴェントの処理はフレームワークの仕様であって、OpenGLの問題ではない。
0919デフォルトの名無しさん
NGNGフレイムワーク
0920917
NGNG>両方のカーソルキィの状態をグローバルか何かで保持
OpenGLの範疇では無さそうですが、この方法を教えていただけないでしょうか。
X11について調べてみたのですが、調べ方が悪いのか良い資料が見付かりませんでした。
0921デフォルトの名無しさん
NGNG格納しておけ, っていうことでは. あと static な変数でもいいかも.
0922914
NGNG返しがあったとは知らなんだ
どのpdf読んだのかわからんけど内積(dot product)のことじゃないですかね?
ピクセル単位で内積取りますよってことで。
適当だけど…
0923913
NGNGa practical and robust ...てやつだけど、どうも俺には無理めなんで
他をあたろうかと思ってるけど、ほかもむずけりゃあきらめます。
(レス不要
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNGんなこたーない
0927デフォルトの名無しさん
NGNG回避する方法はあるのでしょうか?
画像の2ラインめ以降が、数pixelずつずれてしまいます。
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNGglPixelStorei(GL_PACK_ALIGNMENT
0930927
NGNG>>928
↓の様にglDrawPixelsを呼んでるんですが、width, heightが
元画像と同じであることはprintfで確認してます。
glDrawPixels( width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, img );
127x127 以外にも、61x99, 513x129, 257x129 などもうまく表示されません。
128x128, 320, 240, 512x512, 640x480, 1024x1024などは問題無く表示できます。
>>929
↓を試してみましたが、状況は変りませんでした。
glPixelStorei(GL_PACK_ALIGNMENT, 1);
--
読みこんだデータがおかしい可能性も考えて、バッファ(上記の"img")を
pnm型式で出力して、ElectricEyesなどで確認しましたが、ちゃんと表示されました。
なので、glDrawPixels関連の問題だと思うのですが・・。
0931デフォルトの名無しさん
NGNGごめん。GL_UNPACK_ALIGNMENT デス。
0932927
NGNGできましたー!!!
せっかく、"PACK" "ALIGNMENT"というヒントを>>929で戴いていたのに、
UNPACK まで辿り着けなかったのは私の力不足ですね・・。もっと修業します。
みなさん、ありがとうございました。m( )m
0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNGうーむうまくいかない。
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNGとりあえずWGLで組んでみることにします
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNGどのような手法をとればよいんでしょうか??
今までにやってきた数値計算の結果を視覚的に見られれば・・・と思いOpenGLに挑戦したのですが挫折してしまいました・・・
0941デフォルトの名無しさん
NGNGglPushMatrix();
glTranslatef(x,y,z);
glColor3d(色);
glutSolidSphere(r,8,4);
glPopMatrix();
を繰り返してみたら?
0942デフォルトの名無しさん
NGNGglDrawPixelsにブレンド効くのかなぁ。やったこと無いから分からないけど。
GL_ALPHA_TEST,GL_BLEND,glAlphaFunc,glBlendFuncあたりをやってみそ。
>>939
英語のサイトなら知ってたが見れなくなっとる。
>>940
glut使ってないなら、gluSphereでもよいぞよ。
0943デフォルトの名無しさん
NGNG一度印刷したけど、体裁がおかしくてすぐ捨てちゃった。
今は"Conputer Graphics using OpenGL"と"手抜きGLUT入門" で
なんとかカバーしてます。
0944教えてクン
NGNG一つのウインドウの中に
二つ以上のビューポートを同時に
表示する方法ってありますか?
・
・
・
glViewport(0, 0, w/2, h/2);
glViewport(w/2, 0, w/2, h/2);
・
・
としても二つ目のglViewport()しか読み込まれないのですが。
0945デフォルトの名無しさん
NGNGおそらく所望のことは
glViewport(左半分)
drawTeapot();
glViewport(右半分)
drawTeapot();
でできると思う。
0946944の教えてクン
NGNG即レスありがとうございます!
何もしない状態だと一つしか写らないのですが
マウスでドラッグすると交互に二つ表示されるようになりました。
(マウスでドラッグすると物体が回転するようにしてあります)
交互にではなく同時に表示したいのですが、
どうしたらよいでしょうか。
ちなみにやりたい事は一つのウインドウの中に
ウォークスルー画面を二つ同時に表示したいのです。
0947デフォルトの名無しさん
NGNG0948944の教えてクン
NGNGどうやるんでしょう?
クリアする領域って指定できるんですか?
あとクワッドバッファステレオ(?)
を使うためにはどうしたらよいのでしょうか
すいませんおしえてください。
0949デフォルトの名無しさん
NGNGglViewport(左半分)
glClear(なんとか);
drawTeapot();
glViewport(右半分);
glClear(なんとか);
drawTeapot();
ってやってるでしょ?もしかして。
glClearはビューポート関係なくバッファ全体クリアしちゃうから、
glClear(なんとか);
glViewport(左半分)
drawTeapot();
glViewport(右半分);
drawTeapot();
でよいよ。ちがってたらごめん。
あとクワッドバッファステレオ(?) ってどんなやつ??
0950デフォルトの名無しさん
NGNGどんなゲームでも垂直同期がまったくされていない。何故なんだ…
0951938
NGNGブレンドできました!ありがとうございました!
0952デフォルトの名無しさん
NGNG作ったんですが、glRotatefで回転するとモデルの結構な部分が欠けてしまいます。
何が原因なんでしょうか?
0953デフォルトの名無しさん
NGNGWGLの文献って洋書ばっかだから読むペース遅いし。Direct3Dの方が良かったかなぁ。
WGL(に限らずOpenGL)をやるメリットがあったらキボンヌ。
0954デフォルトの名無しさん
NGNGDirect3D(に限らず、MSのAPI):
OpenGLよりもお手軽な関数が沢山用意されてる。→ プログラミングが比較的楽?
バージョン毎に仕様が変わりまくり → 新バージョンが出るたびに勉強し直し
Windows専用。
OpenGL:
基本的な関数しか用意されてない。→ 逆に言うと、かゆいところに手が届く。
一度覚えてしまえば、(たぶん)ずーっと使える。
マルチプラットフォーム。
こんな感じ? 間違ってたら識者のフォロー希望。
0955954
NGNGOpenGL:
基本的な関数しか用意されてない。→複雑な処理をするには、沢山コーディングしないといけない。
→ 逆に言うと、かゆいところに手が届く。
(以下同文)
ってな感じでした。
0956デフォルトの名無しさん
NGNGGamecube -> OpenGL
Dreamcast -> ?
Playstation2 -> Renderware?
知ってる人補完希望
0957デフォルトの名無しさん
NGNGWGLってこのまま勉強していいのか!
http://pc3.2ch.net/test/read.cgi/tech/1039613603/
このスレはもうほったらかしなのかい?
0958デフォルトの名無しさん
NGNGああごめんごめん。誘導されてきたのね。
ちゃんと削除依頼だしとけよ。
tech:プログラム技術[スレッド削除]
http://qb.2ch.net/test/read.cgi/saku/1027372992/
0959デフォルトの名無しさん
NGNGzNear,zFarの範囲にモデルが納まってないとか、
適用するマトリックスモードが違うとか(glMatrixMode)。
>>953
俺なんか英語だめだめだから、翻訳ソフトに掛けてコチコチ覚えた。
メリット・デメリットは>>954と同じ。
時間があれば両方覚えてそんは無い(たぶん)。
どっち使った方が良いかは用途による。
0960デフォルトの名無しさん
NGNG激しく勘違い
0961デフォルトの名無しさん
NGNGこんなのはどう?
GLT - OpenGL C++ Toolkit
ttp://www.nigels.com/glt/
0962デフォルトの名無しさん
NGNGげっ。こんなもんがあるとは・・・。
俺の作ったGlutWindowが無駄になっちまったな。鬱
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNGどういうこと?pure GLでやれって意味?
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGアホ?
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNGスルー、スルー。
0969デフォルトの名無しさん
NGNGなんかやけに人少ないけどさ。
0970デフォルトの名無しさん
NGNGOpenGLはN64でしょう.
でもこの選択が大失敗だったらしい.
>>965
GLUTでなんでだめなの?
次スレに続く.
0971デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1039613603/
テンプレ作ってからでも遅くは無いだろう。
とりあえず適当なリンク集めるか。
http://www.opengl.org/
http://developer.nvidia.com/view.asp?PAGE=opengl
http://www.ati.com/developer/indexsc.html#opengl
http://nehe.gamedev.net/
http://www.flipcode.com/
http://www.gamedev.net/
http://romka.demonews.com/opengl/index_eng.htm
http://www.mesa3d.org/
ver1.0の赤本(英語)
http://ask.ii.uib.no/ebt-bin/nph-dweb/dynaweb/SGI_Developer/OpenGL_PG
ここらへんにもありそう↓
http://romka.demonews.com/opengl/doc/index_eng.htm
青本はVCに付いてるし。
glutはここらへんか??使ってないからわからん。
http://www.opengl.org/developers/documentation/glut.html
他にC#でも使えるような奴があったような…。
ほとんどopengl.orgからだどれるけど。
日本語で便利なサイトなーい?
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG>他にC#でも使えるような奴があったような…。
http://csgl.sourceforge.net/
追加キボン
0974デフォルトの名無しさん
NGNGGLUTの日本語つったらここだろ
http://www.exa-corp.co.jp/mmtech/OpenGLEdu/
赤本買えない奴はこれしかねぇ!!
後、個人的におすすめは
http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html
あとは英語サイトだけど
http://nehe.gamedev.net/
ここはイイ \(゚∀゚)/
0975デフォルトの名無しさん
NGNGWGLやれ。
0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNGGLUI
http://www.cs.unc.edu/~rademach/glui/
wxWindows
http://www.wxwindows.org/
FLTK
http://www.fltk.org/
0978デフォルトの名無しさん
NGNGhttp://www.trolltech.com/
http://www.fox-toolkit.org/fox.html
こいつらも
0979デフォルトの名無しさん
NGNG必死になるほどのものだっけ?拡張関数まで覚えてるなら分からんでもないが…。
それ以前にglコマンドそのものを知らなさそうだが。
0980デフォルトの名無しさん
NGNGPS2は特にライブラリに束縛されてない。
ちなみに某所ではPS2上で動くOpenGLがある。
RenderWareはPCやGC版も出てる。
GCやN64はOpenGLライクだけど、やっぱり全然違う物。
DCはしらん。ニンジャライブラリとかいうのがあるんだっけ?
0981デフォルトの名無しさん
NGNG> ちなみに某所ではPS2上で動くOpenGLがある。
そんなに勿体ぶらなくても、
OpenGLガワ作ってるのはめずらしいことじゃないでしょ。
http://www.dataplus.co.jp/OpenGL4ps2.html
とか、gamasutraかgame developer magazineあたりにも
PS2用OpenGL作ってゲーム作った話が載ってたし。
098216
NGNGファイルからビットマップを読み込んでOpenGL使ってそれを回転させたいんですが、
どういった手順でやればいいのか全くわかりません。
ちなみにWinでコンパイラはVisual Studioです。
よろしくお願いします。
0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNGコマンドプロンプトから
echo OpenGL > 表示したいマップ
0985デフォルトの名無しさん
NGNG手順ねぇ・・・
(1) OpenGLを準備(初期化とか)
(2) ファイルからビットマップを読み込む
(3) 読み込んだビットマップをテクスチャに設定
(4) モデルビュー行列に回転を加える
(5) 四角形ポリゴンを描く
こんな感じでどう?
0986デフォルトの名無しさん
NGNGタイトル:(゚∀゚)アヒャ OpenGLスレ Part2
マルチプラットフォームなグラフィックAPIそれがOpenGL!
DirectXもいいがOpenGLもそれなりに(・∀・)イイ!!
質問、雑談何でもいいから書き込んで1000目指せ!
- 過去スレ -
http://pc3.2ch.net/test/read.cgi/tech/981044659/
- 関連サイト -
http://www.opengl.org/
http://developer.nvidia.com/
http://www.ati.com/developer/
http://www.mesa3d.org/
0987デフォルトの名無しさん
NGNGGLUT
http://www.opengl.org/developers/documentation/glut.html
GLUI
http://www.cs.unc.edu/~rademach/glui/
wxWindows
http://www.wxwindows.org/
FLTK
http://www.fltk.org/
Qt
http://www.trolltech.com/
FOX
http://www.fox-toolkit.org/
csgl(C#)
http://csgl.sourceforge.net/
0988デフォルトの名無しさん
NGNGhttp://www.opengl.org/developers/code/tutorials.html
http://romka.demonews.com/opengl/doc/index_eng.htm
- お勉強サイト -
http://nehe.gamedev.net/
http://www.flipcode.com/
http://www.gamedev.net/
http://romka.demonews.com/opengl/index_eng.htm
http://www.exa-corp.co.jp/mmtech/OpenGLEdu/
http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html
>>974
すまん一番上のリンク先が、GLUTのこと書いてないしよくわからんかったので
勉強サイトにしておきますた。
スレタイと1のコメントは適当だから誰か考えてくれ。
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNGwinだとWGLでunixとかだとglx、appleはagl。
それぞれsystemとopenglをくっ付けるだけの役割する。
GLUTはそれも含め、ウインドウ管理とかその他をラップした、
シンプルなインターフェース提供する。
glutもマルチプラットフォームを考慮してるんでWGLそのものは隠蔽されてる。
GLUIはGLUTを拡張して、多機能にしたもの。
(らしい。GLUIなんて触ったことも無いので)
glutに不満があるならあなたはきっとWGLを使うであろう(機械語翻訳風)
テンプレフィックスしないまま1000行きそうだよ〜
0992デフォルトの名無しさん
NGNGGLUI は GLUT よりももう少し GUI の面で強化したもの.
その特徴は, 良くも悪くもツールキットとしてシンプルなこと.
30 分でいいからマニュアルを読んでみるといい. それでだいたい全部が
分かるくらい単純. たとえば GTK とかだとそうはいかないよね ?
一方, wgl は 991 が言うように, レンダリングコンテキストを生成したり,
バッファを切り替えたりする, システムと OpenGL との間に立つもの.
wgl と GLUT では, そもそも提供しようとしている主な機能が違う.
GLUT のツールキットとしての機能に不足があるなら FLTK とかもっと他の
ツールキットを使う. レンダリングコンテキストやバッファの管理に不満が
あるときは自分で wgl を使って管理する.
0993デフォルトの名無しさん
NGNGこのままやってもいいのね。なんかWGLがオシマイみたいな言い方してる人がいたから。
0994デフォルトの名無しさん
NGNGOpenGL最強。
0995デフォルトの名無しさん
NGNGよちよち。このスレなら叩かれないと思ったんだね(w
0996デフォルトの名無しさん
NGNGとりあえずドライバはMSチェックがあるだけDirectXの方がまし。
だと俺は思ってる。
0997デフォルトの名無しさん
NGNGDirectXとOpenGLを統合する
ものを作ろうとしていたような気がするが
どうなったんだろう。
0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。