OpenGLスレ Part15
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/11/17(水) 20:22:08現在のバージョンは4.1
http://www.opengl.org/
== OpenGLと一緒に使われるツール&ライブラリ ==
苦労したくなかったらとりあえず入れとけ。
・glx: XからOpenGLを使うためのライブラリ。普通は直接は使わず意識する事はない
・glut: クロスプラットフォームなツールキット。でもさすがに古くさい
・glew: これを入れないと拡張機能が使えないor使いにくい
・glxgears: 歯車が回るベンチマーク。-infoでOpenGLのバージョンが見られる。OpenGLの動作確認はこれで
・glxinfo: 自分の使っているカードのOpenGLの機能が全てリストアップされる。
・OpenTK C#からOpenGLを簡単に使えるようになる。VC#の強力なIntellisenseとあわせてサクサク開発可能。
== 必読書 ==
・OpenGLプログラミングガイド 原著第5版 (通称赤本)
・OpenGL(R) Reference Manual (通称青本)
・OpenGL Shading Language (通称だいだい本)
・OpenGL(R) SuperBible: Comprehensive Tutorial and Reference
・OpenGL ES 2.0 プログラミングガイド
・GLUTによるOpenGL入門
・GLUTによるOpenGL入門2 テクスチャマッピング
あると便利。
・ゲームプログラミングのための3Dグラフィックス数学
== チュートリアルサイト ==
床井研究室: http://marina.sys.wakayama-u.ac.jp/~tokoi/oglarticles.html
OpenGL de プログラミング: http://wiki.livedoor.jp/mikk_ni3_92/
NeHe: http://nehe.gamedev.net/
== 前スレ ==
http://hibari.2ch.net/test/read.cgi/tech/1263901596/
0002デフォルトの名無しさん
2010/11/17(水) 20:24:35Part14: http://hibari.2ch.net/test/read.cgi/tech/1263901596/
Part13: http://pc12.2ch.net/test/read.cgi/tech/1247349324/
Part12: http://pc12.2ch.net/test/read.cgi/tech/1221215309/
Part11: http://pc11.2ch.net/test/read.cgi/tech/1177523018/
Part10: http://pc11.2ch.net/test/read.cgi/tech/1141034983/
Part 9: http://pc8.2ch.net/test/read.cgi/tech/1132403929/
Part 8: http://pc8.2ch.net/test/read.cgi/tech/1126267690/
Part 7: http://pc8.2ch.net/test/read.cgi/tech/1118151979/
Part 6: http://pc8.2ch.net/test/read.cgi/tech/1105612993/
Part 5: http://pc5.2ch.net/test/read.cgi/tech/1100085657/
Part 4: http://pc5.2ch.net/test/read.cgi/tech/1091724463/
Part 3: http://pc5.2ch.net/test/read.cgi/tech/1067529308/
Part 2: http://pc2.2ch.net/test/read.cgi/tech/1039984523/
Part 1: http://pc3.2ch.net/tech/kako/981/981044659.html (dat落ち)
== C/C++以外から使うには ==
Rubyから --> ruby-opengl
Pythonから --> PyOpenGL
Javaから --> JOGL
JavaScriptから --> ???
Haskellから --> ???
C#等、.NET系 --> OpenTK
0003デフォルトの名無しさん
2010/11/19(金) 03:09:34お疲れ様です。
テンプレにglm, OpenSceneGraph, sfmlあたりを入れておくといいんじゃないでしょうか。
opengl.orgから直リンクされていますが
http://www.opengl.org/wiki/Main_Page
http://www.opengl.org/documentation/specs/
も役立つので入れてみるのはどうでしょうか。
4k intro野郎はC/C++の標準ライブラリを使わないのはもちろんの事、
glutとかglewとか使わずにウィンドウやコンテクストをwin32apiを直接呼び出して初期化し
wglGetProcAddressで必要な関数のみを拾ってくるんだよ。
0004デフォルトの名無しさん
2010/11/19(金) 17:02:19OpenGL の形を保ったまま便利な皮被せてるから、OpenGL の空気そのままで扱える。
0005デフォルトの名無しさん
2010/11/19(金) 19:10:30オフスクリーンレンダリングしてコピーではなく直接ウィンドウに描画したいです
0006デフォルトの名無しさん
2010/11/21(日) 03:29:240007デフォルトの名無しさん
2010/11/21(日) 17:04:59OpenGL4.1に対応したGPUを取り付ける
OpenGL4.1に対応したドライバをインストール
OpenGL4.1に対応したglewをインストール
OpenGL4.1に対応したプログラマを雇う
0008デフォルトの名無しさん
2010/11/21(日) 17:47:30上2つとドキュメントは分かったけどどのライブラリをインストールすれば良いか分からなかったんだよねw
ありがとう
0009デフォルトの名無しさん
2010/11/22(月) 17:31:41無理
0010デフォルトの名無しさん
2010/11/22(月) 21:06:30直接に近い形にはできると思うけどね。
0011デフォルトの名無しさん
2010/11/24(水) 05:07:26無理
0012デフォルトの名無しさん
2010/11/24(水) 19:32:220013デフォルトの名無しさん
2010/11/24(水) 20:03:40マジで無理だと思っていたので
方法があるなら教えて下さいお願いします。orz
今のところ手元で使っている方法は、
GL_BACK に描画→SwapBuffer() せずに glReadPixel() でRGBA画像をメモリに書き出し
→UpdateLayeredWindow() でデスクトップに描画
または、
FBO→に描画、glReadPixel() でRGBA画像を(以下略)
の2通りです。
0014デフォルトの名無しさん
2010/11/25(木) 00:28:12PFD_DRAW_TO_BITMAP |PFD_SUPPORT_OPENGL |PFD_SUPPORT_GDI,
を指定する。(手元にソースが無いので合ってるか確認してない。)
DIB を作成して wglMakeCurrent() でDIBのDCをセットする
オフスクリーンレンダンリングが DIB に対して行われるので。
DIBのDCでUpdateLayeredWindow() を行う。
DIB×OpenGLのコードは↓参照。
ttp://son-son.sakura.ne.jp/programming/opengl_3.html
0015デフォルトの名無しさん
2010/11/25(木) 05:06:50001613
2010/11/26(金) 01:26:39ありがとうございます!
>>15
確かそうだったかもと思ったんですが
wglChoosePixelFormatARB() で検索すれば
WGL_DRAW_TO_BITMAP_ARB と WGL_FULL_ACCELERATION_ARB が
同時に True の PixelFormat が取れるかも…。(未確認)
手元の RadeonHD4850 で試してみます。
0017デフォルトの名無しさん
2010/11/26(金) 19:22:02これを人間が使って3Dを描画するのが間違えてないか。
CPUで言えばアセンブリで直接ゲームを作るようなもの。
3DにもC++に相当するような「高級言語」が必要だと思うのだが、どうだろうか?
0018デフォルトの名無しさん
2010/11/26(金) 19:55:02いろいろあると思うけど
0019デフォルトの名無しさん
2010/11/26(金) 20:43:08たとえば、どのように表示するために、どのように記述できると
「C++に相当するような高級言語」と言える?
002017
2010/11/26(金) 21:24:06- レンダリングコマンドが呼び出し順に依存しない
- レンダリングデータのメモリ配置、型を考慮する必要がない
- レンダリングステートの変化の影響が自明
な事が必要だと思う。
OpenGLを使ってちょっと複雑なものを表示しようとするとこの変がネックになる。
あまりにプリミティブ過ぎないだろうか。
0021デフォルトの名無しさん
2010/11/26(金) 21:37:32PFD_DRAW_TO_BITMAPを指定してGLSLを使ったらどうなる?
シェーダー処理も全てソフトウェアレンダリングされるのか?
そうはならないでしょ…多分。
一部の機能がソフトウェア処理される程度じゃないかと。
0022デフォルトの名無しさん
2010/11/26(金) 21:56:24上二つは分からなくもない。
ただ、それはゲームエンジンあるいはライブラリがする仕事と何が違うのか?
> レンダリングステートの変化の影響が自明
これがちょっと分からんな。
これは、レンダリングステートをAからBに変えた時、
どのように表示が変化するのかがプログラマにとって自明である事を言ってるの?
もしそうなら、それは「高級言語」で解決できそうな類の問題なのか?
0023デフォルトの名無しさん
2010/11/26(金) 21:58:28Open Inventorとかそうじゃないかな
002417
2010/11/26(金) 22:02:52mesh0.color = {255,0,0};
mesh1.color = {0,255,0};
カラーだけだとありがたくも何とも無いけど。
ある「ステート」の及ぼす効果、範囲がわかり難い。
0025デフォルトの名無しさん
2010/11/26(金) 22:14:46OpenGLに変わるもっと見通しが良く、人間が使いやすい形の3D記述APIが必要だ思うですよね。
GoogleのO3Dもこの方向だと思う。作ったら世の中に受け入れられないだろうか。
0026デフォルトの名無しさん
2010/11/26(金) 22:15:37それって、ポリゴンの集合に対してカラー属性を付与して、
そのカラー属性の値を関数で与えてるんだよな。
やっぱりライブラリで事足りるような気がするんだが・・・
ていうか、そういうの普通に自作してないか?
わざわざ新言語作るんだから、既存の言語+ライブラリでは不可能、
あるいは意味を明確に表しにくい表現が簡単にできないと意味が無いと思うぞ。
002717
2010/11/26(金) 22:30:32OpenGL+ライブラリではできない事ができるかと言われるとできない。
使いやすいだけでも訴求ポイントにはなると思うけど弱いかなあ
うーーん、もう少し革新性が必要ですね……
0028デフォルトの名無しさん
2010/11/26(金) 22:36:30いや、OpenGL+ライブラリと同じ事しかできなくても、
その言語だと「こんなに楽に、見やすく書けて、メンテ修正もしやすいよ」
でもいいと思うんだ。
ただ、言語を設計するというのは、
ライブラリを作ること以上に骨の折れる作業だよ。
既に既存のライブラリがあるんだから、少なくともそれ以上の
「こんなに楽に、見やすく書けて、メンテ修正もしやすいよ」でないと、
言語を作るメリットがね・・・
0029デフォルトの名無しさん
2010/11/26(金) 22:37:55しまった、頭痛が痛い
0030デフォルトの名無しさん
2010/11/26(金) 23:06:17色々と隠蔽したものはゲームエンジンの類になるんじゃないか?OpenGL公式のトップニュース見てるだけでもよく見かけるが。
0031デフォルトの名無しさん
2010/11/27(土) 00:09:21確かにOpenGLを直接使って3Dを描画するのは大変かもしれない。
世界にはそんな風に考えている人が沢山いて,
OpenSceneGraphとかIrrlichtのようなライブラリが作られたんだよ。
17はOpenGLの欠点だけを挙げているようだけど
そういったライブラリを調べた上でOpenGL+ライブラリ方式が不味いと言ってるの?
ライブラリとかゲームエンジンを使うと開発は楽になるけど
制限も発生するんだよ。
ライブラリに実装されていない特殊な技術を使おうとしたり
ハードウェアの性能を最高に引き出そうとしたりするとOpenGLのような
ハードウェアに近いAPIが必要になるんだよ。
メガデモ野郎の俺様はいつもOpenGL3.3のAPIを直接呼び出して使ってるぜ!(キリッ)
0032デフォルトの名無しさん
2010/11/27(土) 04:20:38OpenGLが高級言語だろ
グラフィックでアセンブラ相当と言えばフルスクラッチで、
頂点情報をラスタライズしてポリゴン描画や、画像のピクセル拾ってテクスチャマッピング
ってレンダラを自前で作るくらいの部分だろ
17の理屈で言えば、人間がプログラミングなんてやるのが間違ってて
口で処理を言えば即プログラムが出来上がる高級な仕組みが欲しいってレベルだろ
0033デフォルトの名無しさん
2010/11/27(土) 11:01:51無理やり難癖つけなくてもw
OpenGL = アセンブリ という例えはあってると思う。
どちらもハードウェアの機能をフルに使いたいときには使うが
それだけでゲームを作るのは狂気の沙汰。
問題はダイクストラの構造化プログラミングに相当するような
3D APIにおけるパラダイムシフトは何か? という点にあると思う。
上の例で言えば
- 命令が記述順に依存しない
- データがメモリ配置、型に依存しない
というのは十分にパラダイムシフトになってると思う。
ゲームエンジンみたいに余計な機能は付け加えずに描画に絞った
ライブラリ(高級言語)はアリだと思う。
0034デフォルトの名無しさん
2010/11/27(土) 13:31:00OpenGLを叩いてゲームを作るのは狂気の沙汰と思ってる奴が、
ゲームを作りたいと思う事自体が”狂気の沙汰”だろ
って言ってんの
OpenGLは、OpnnGLを叩けるレベルの人間に向けて出されてるんのに
勝手に自分の低レベル目線に持ってきて狂気とかw
そう言うレベルの人間は、ツクールとか
金出して他人にゲーム作成を依頼しろって事
0035デフォルトの名無しさん
2010/11/27(土) 14:15:11で、どういうのが欲しいか >>19 や >>22 で具体例を訊いたが、答えが >>24 だ。
これだけ漠然とした答えだと、既存のライブラリと何が違うの?と言わざるを得ない。
しかも >>24 の例は mesh0 や mesh1 と言っていることからして、
どうもポリゴンの集合としてのオブジェクトの概念をも言語レベルに入れたがっている。
しかし、ライブラリではなく言語がそこまで高次の領域の面倒を見るべきかな?
そこまで行くと、逆にかゆいところに手が届きにくくなるような気がする。
命令が記述順に依存しないというのは、
要するに命令的ではなく宣言的に記述できるといいな、ということだろう。
Haskell などの関数型で OpenGL のラッパーを作ればいいのでは?
0036デフォルトの名無しさん
2010/11/27(土) 19:29:52Zバッファの仕組み等の
3Dプログラミングの知識もスキルも無いだけだろw
0037デフォルトの名無しさん
2010/11/27(土) 20:47:34いや、さすがにそんな基礎は分かってるだろ
でなければ OpenGL は使えない
ある程度ヒントを与えればコンパイラが適切な順に命令を並べてくれる
という意味だと思うぞ
0038デフォルトの名無しさん
2010/11/27(土) 22:19:52OpenGL程度のAPIを使ってゲーム作るを狂気の沙汰と言ってるんだから
OpenGL分かりませんって言ってるのも同然なレベルだろ
だって基礎知ってれば、OpenGLでゲーム作るのは普通
そもそも言っちゃえばプログラミングの知識すら怪しい
命令が記述順に依存しない
なんて、基礎を知ってるなら素人でも最初に自分で組む部分
APIのステートとかを登録していき、実際に実行するときに解決される
なんて誰でも思いつくし、自分用に作る部分だろ
命令がAPI発行順に依存しない
なら話は違うと思うがw
これだけで、どんだけ低れべるなのか知れる
0039デフォルトの名無しさん
2010/11/27(土) 23:30:43自分が理解できないからといって他人を否定するのはよくない。
glTranslate (0,0,1);
glRotate (90, 0,0,1);
と
glRotate (90, 0,0,1);
glTranslate (0,0,1);
が等化で有るべきと、俺は解釈したね。
0040デフォルトの名無しさん
2010/11/27(土) 23:40:40現実は誰でも知っているようにその後はアセンブリはCに取って代わられたわけだ。
現状のOpenGLが良いとは俺は思ってないし多分みんなもそうだろう。
じゃあ代わりの3D APIがどうあるべきかというと、俺にもアイデアはない。
この辺は恐らく目線の違いで、現在使えればいいだけの>>36-38みたいな人間は
新しいAPIについて考えることはないし、自分で何かしようとは思わないだろう。
恐らく新しい事をやりたい人間は>>36-38みたいな他人を否定したくてしょうがない人間と付き合ってはいけなし、
アイディアを話すのは害にしかならない。
0041デフォルトの名無しさん
2010/11/28(日) 00:01:11てめぇ、バカに俺(>>22 >>26 >>28 >>35 >>37)も含めるな。
俺は現在使えればいいだけなんて一言も言ってないし思ってもない。
ただ単に「>>17 の言うような新言語」であるなら、
それは既存のライブラリとどこが違うのかと訊いている。
ここが違うと言えないのなら、新言語を設計するメリットが少ないと思うぞ。
これはお前の目には否定に見えるのか?
そして、>>35 でもちょっと言ったが、新言語を設計する時は、
言語が担うべき仕事と、ライブラリに任せるべき仕事をちゃんと区別した方がいい。
まずは、本当に言語が担うべき仕事をちゃんとリストアップすべきだ。
あと、命令が記述順に依存しないの意味が宣言的に記述する事であるなら、
ネタではなく本当に真面目に、Haskell で書かれた OpenGL ラッパー
例えば FieldTrip なんかからアイデアを集めた方がいいと思う。
0042デフォルトの名無しさん
2010/11/28(日) 00:03:47その話しぶりだと、>>39 はギャグではなくマジなんだな
0043デフォルトの名無しさん
2010/11/28(日) 00:39:20vs
OpenGLは十分使い安いので現状でOK派
の論争になっているようだね。
今のOpenGLのAPIが完璧だとは言わないけど
OpenGL並にハードに近いAPIは必要なんだよ。
下手に高級にすると制限が生まれて、できるハズの事ができなくなっちゃうんだよ。
OpenGLが使いづらい、3D APIがこうあるべきだ!
と世界中には同じような事を考えてる人は沢山いる。
そういう人たちが3D APIを使いやすくする為にOpenSceneGraphとかのライブラリを作ってるわけだ。
自分と同じような事を他の人が既に考えていて、それなりに結果がでているなんて事はよくあること。
OpenGLが使いづらいよ派の人は
まずは既存のライブラリやゲームエンジンとかをよく調べて、それでも満足しないなら
既存のライブラリの問題点とか、こんな問題はライブラリでは解決できないとか
○○という理由でOpenGL上には俺の理想する3D APIを構築する事は不可能だと言ってくれ。
>>39
class mesh
{
vec3 position;
matrix direction;
...
};
みたいなクラスがあって、そこに位置と向きを指定しておくだけで
その通りレンダリングするライブラリがあればそれでいいんじゃないの?
OpenGLが難しいからといって、今よりずっと理解し易さ重視で速度を犠牲にするような変更を加える事はあってはならないと思う。
OpenGLが難しいなら使いやすいライブラリを探して, それでも解決しないなら文句を言ってくれ。
0044デフォルトの名無しさん
2010/11/28(日) 00:49:56ライブラリで全てが解決する派の欠点は、そう都合良く自分の欲しいライブラリがあるとは
限らないところだと思う。新規のものは学習コストもそれなりにかかるし。
個人的にはスキニングとアニメーションは3D API(言語)として標準化した方がいいと思うけどね。
誰かやって。
0045デフォルトの名無しさん
2010/11/28(日) 00:58:45>恐らく新しい事をやりたい人間は>>36-38みたいな他人を否定したくてしょうがない人間と付き合ってはいけなし、
>アイディアを話すのは害にしかならない。
既存の環境に適応している人間ほど別の環境に移るコストは相対的に大きくなるわけで、
パラダイムを変えるようなアイディアをその環境に適応した人間ばかりの場所に
投げ込んでもいろいろ批判されるのは仕方ないことじゃないかな。
0046デフォルトの名無しさん
2010/11/28(日) 01:08:340047デフォルトの名無しさん
2010/11/28(日) 01:09:460048デフォルトの名無しさん
2010/11/28(日) 01:21:36> でもJavaなんてどこまでが言語仕様で、どこまでがライブラリなのか非常に曖昧だよね。
言語仕様ははっきりと定められているはずだが。
http://java.sun.com/docs/books/jls/
例えば仕様のどこと、ライブラリの何の境界が曖昧?
> ライブラリで全てが解決する派の欠点は、そう都合良く自分の欲しいライブラリがあるとは
> 限らないところだと思う。新規のものは学習コストもそれなりにかかるし。
求めるライブラリが無ければ自作するという選択肢もあるんだが。
新言語を設計するよりは、学習も含めて低コストではないのか?
> 個人的にはスキニングとアニメーションは3D API(言語)として標準化した方がいいと思うけどね。
だからさ、現状「標準化」されていないことで何が不満なのか一つ二つでも例を挙げてくれ。
でないと、じゃあどうやって解決しようかという話に繋がらないだろ。
まさかその例の列挙も含めて全て「誰かやって」なのか。
0049デフォルトの名無しさん
2010/11/28(日) 01:23:36ライブラリだと都合良く自分の欲しいライブラリがあるとは限らないというなら
言語にすれば都合良く自分の欲しい物が手に入るの?その理由は?
それをさらに他人にまかせて、自分の思った通りに作ってくれるの?
>>45
いままで出たアイデアの中でOpenGLの代わりに3D API言語を作ろう
というアイデア以外で
目新しいアイデアは無いよ。
パラダイムを変えるようなアイディアってこれの事?
> - レンダリングコマンドが呼び出し順に依存しない
シーングラフ系のライブラリでOK
> - レンダリングデータのメモリ配置、型を考慮する必要がない
レンダリングデータを頂点毎, ピクセル毎に呼び出して設定すればOK
主要な型を自動的に変換してOpenGLへ送ってくれるテンプレート関数を作ればOK
> - レンダリングステートの変化の影響が自明
ちゃんとレンダリングパイプラインを理解していればレンダリングステートの変化の影響は自明だよ。
レンダリングパイプラインが難し過ぎて理解できないなら、理解可能なライブラリを探して使う。
で, 新しい言語を作るメリットは?
ライブラリを作る事に比べてどのようなメリットがあるの?
0050デフォルトの名無しさん
2010/11/28(日) 02:19:03プログラム以前に数学すらおぼつかない奴が吠えてるって事だろ
お前ら人が悪いな…
黙ってニヤニヤしながらROM気取ってるのかw
0051デフォルトの名無しさん
2010/11/28(日) 02:27:35OpenGLは低レベルのグラフィックAPIって前提で世に出されてるの
プログラマ向けなの
低レベルでプログラミング出来ないからって、
プログラムも怪しいゲーム作りたい房が文句言ってるなよ
って話
そもそもプログラム(英語とかスキル全般だな)が怪しいからこそ
OpenSceneGraphで間に合ってるような内容を、低レベルAPIに求めだすんだろw
0052デフォルトの名無しさん
2010/11/28(日) 02:33:07車の構造に文句言ってF1レーサーになりたいって言ってるようなモン
0053デフォルトの名無しさん
2010/11/28(日) 09:19:01>パラダイムを変えるようなアイディアってこれの事?
それは>40のアセンブラ〜Cへの行を受けたものだけど、
API呼び出しが言語になるのなら十分同じ程度の変化だと思う。
ポインタに躓いたことがなくてしかもそれを便利に使ってるような人に、
ポインタのない言語作ろうぜ、とか言っても説得は不可能だと
思うから個別のことには答えられないけど。
0054デフォルトの名無しさん
2010/11/28(日) 10:16:30OpenGLもせめてDirectX並みに拡張子した方がいい。
0055デフォルトの名無しさん
2010/11/28(日) 10:24:38ポインタが無い言語が出来た理由は
ポインタが理解出来ない人の為ではなくて
ポインタと言うメモリアドレスを直接さわると
バグやセキュリティ低下の原因になるから
アセンブラ〜Cの下りも比較になってない
お前らが求めるのは、
C言語でプログラム組むのは狂気の沙汰、BVじゃないとって位の話
ようは、OpenGLやC言語の問題を指摘してるんじゃなくて
俺達分からないから簡単にしてって言ってるんだろ
0056デフォルトの名無しさん
2010/11/28(日) 10:47:28でも for文 に相当する処理は頻繁に行う
これならアセンブラ->C言語の移行も納得の機能だろう
だが、今OpenGLに変わる高級3D言語?を求めてる奴等って
OpenGLで出来る規定処理を簡単に、とかって話のレベルじゃないんだよな
OpenGLが使っている、3Dの基本的な原理、手法や現在のHWの仕様などなど
を問題視してるように見える
それは、C言語でプログラミングしてコンパイラでバイナリを作るって言う
C言語の大本を問題視してるようなもの
それはC言語を辞めて下さいって話で、C言語をどうこうって話ではないだろ
つまりOpenGLをどうこうではなくて、OpenGLとはまったく違う3D APIって事だろ
現在のGUPアーキテクチャがどうなってるとか、それをAPIでどう吸収するのか
ってそう言う話なら歓迎だが、単にOpenGL難しいよね的な理由のレスはかんべんしてくれw
0057デフォルトの名無しさん
2010/11/28(日) 10:56:573D APIに誰もfor文やその他の制御構文を求めているわけではないと思う。
最初に問題にされていたのは命令の記述順だったり、グローバルなレンダリングステートだったはず。
確かにOpenGLはその辺の仕様が良くないので、OpenGLに変わる何かはアリだと思う。
勝手に誰かが簡単ライブラリを探している事に矮小化するレスを除外して考えないと本質を見失う。
0058デフォルトの名無しさん
2010/11/28(日) 11:27:21グローバルなレンダリングステート
なおさらw
どれもOpenGLを叩く言語上の問題であってOpenGLの問題じゃない
さもOpenGLの問題のようにすりかえてるだけで、プログラミング能力がないだけ
for文の構文仕様に文句言ってるのも同然
最初に初期化、条件、変化は分かり辛いとかw
そもそも、そう言うOpenGLの仕様になってるのは
GPUのアーキテクチャや仕様から来てるんだよ
その仕様に最低限のシンプルな実装になるようなAPI仕様になってるの
それが気に入らないなら、自分でライブラリ作るなりしろ
命令の記述順
グローバルなレンダリングステート
これらは十分すぎるほど個人の言語処理のレベルw
0059デフォルトの名無しさん
2010/11/28(日) 11:35:15モロに”記述”ってプログラミング言語の問題だって自身で言ってるだろw
どう記述しようが、実際の実行(APIコール)は整合がとれている
そう組めば言いだけだろ、なんでGLの問題に摩り替えようとしてるんだw
グローバルなレンダリングステート
APIを使えるようになってから文句言おうな
ステートのPOPとPUSHはあるぞw
(糞重いけど)
0060デフォルトの名無しさん
2010/11/28(日) 11:44:45- レンダリングコマンドが呼び出し順に依存しない
これは59でも言ってるが、直接API呼び出してる
プログラミング能力の無さを棚にあげてる
- レンダリングデータのメモリ配置、型を考慮する必要がない
これも同じ
配置、型を考慮しないインターフェイスを自作して
そのインターフェイスの中で振り分ければ言いだけ
人はそれをライブラリと呼ぶw
- レンダリングステートの変化の影響が自明
これも同じ、各ステート値を保存しておいて…って
GLにステートをゲットするAPIがあるだろwww
メッシュがろうがポリゴンだろうがゲームループの先頭から、
直接API呼んじゃって制御してるようなレベルの素人さんの
個人的レベルの意見に過ぎないだろ、どう見ても
0061デフォルトの名無しさん
2010/11/28(日) 11:49:39今現在、明白だからOpenGLでレンダリング制御できると思うんだが・・・
やっぱり、どう見てもOpenGLを使いこなせてないだけのような・・・
0062デフォルトの名無しさん
2010/11/28(日) 11:54:33新言語で「どうやって記述するとそれが解決すると思うか」例を挙げてくれ
その記述をどうコンパイルするかは脇に置いていいから
とりあえず >>24 の書き方で「効果と影響範囲が自明でない問題」が解決するのなら、
新言語を作るまでもないと俺は思う。
ライブラリを探すどころか、OpenGL でゲームやアプリを作ろうと挑戦してきた人間なら、
たいていは自作しているレベル。
0063デフォルトの名無しさん
2010/11/28(日) 11:59:56・俺に使いこなせない
これ一択だろ
0064デフォルトの名無しさん
2010/11/28(日) 12:12:010065デフォルトの名無しさん
2010/11/28(日) 12:18:50プログラムが出来て、3D等の理論、GPUアーキテクチャを理解している人向けのAPI
それ以外の人は御遠慮下さいってだけだろ
出来ない君が欲しがるのは自由だが
欲しがって勝手に使った挙句、使いこなせない状況を
OpenGLの問題とか言い出すのは違う
そんなのが通じるなら、
世の中のプログラム出来ない人間が
全てのプログラム言語は問題がるとか言い出して
プログラミングしなくとも好きなバイナリを作れるようにすべき
って理屈が通じる事になる
0066デフォルトの名無しさん
2010/11/28(日) 12:22:44それを万人が認めるくらい覆す内容を言えてないのに、足を引っ張るって…
ほんと最近は、自己中心的なガキか増えたよなw
0067デフォルトの名無しさん
2010/11/28(日) 13:15:58だから万人向けのAPI(高級言語)を作ろうという話だったはず。
OpenGLはそのままで、もう1つ別のAPIを定義しようぜって話。
0068デフォルトの名無しさん
2010/11/28(日) 13:27:17万人向けのAPIを作る「動機」が不明確
もう少し言うなら、ライブラリで解決しようとしないで、
より困難を伴う新言語の設計で解決しようとする理由が不明確
0069デフォルトの名無しさん
2010/11/28(日) 17:57:10そうなら、この"OpenGL"スレから出て行ってくれよw
0070デフォルトの名無しさん
2010/11/28(日) 20:19:21>>17の言いたいことはこうか
「馬鹿の17にもわかるライブラリよこせやごるぁ」
0071デフォルトの名無しさん
2010/11/28(日) 21:21:020072デフォルトの名無しさん
2010/11/28(日) 21:35:550073デフォルトの名無しさん
2010/11/29(月) 13:52:17一つの言語でグラフィック界のマシン語にコンパイルできたらかなり便利だろ。
あとGUIもその言語によって環境によって一つにまとめれたらますます便利になるな。
0074デフォルトの名無しさん
2010/11/29(月) 14:00:07C++標準ライブラリーに組み込んでほしいな。
0075デフォルトの名無しさん
2010/11/29(月) 19:11:52一つの言語でグラフィック界のマシン語にコンパイルというのは、
グラフィックに関係ない部分(AIロジックなど)も全部その新言語でプログラムするの?
それとも、グラフィック以外はA言語、グラフィックはB言語とかって分けるの?
0076デフォルトの名無しさん
2010/11/29(月) 19:23:09Cなどの言語に相当するものもライブラリーになる
0077デフォルトの名無しさん
2010/11/29(月) 19:52:35間違えてない。
アセンブラでプログラムを組むことも間違いではない。
お前は何か大きな勘違いしている。
0078デフォルトの名無しさん
2010/11/29(月) 20:31:03言ってる意味が分からんな
もしかして「一つの言語でグラフィック界の・・・」の「言語」というのは比喩なのか
0079デフォルトの名無しさん
2010/11/30(火) 12:48:24解決策述べずにGL批判する奴は
・OpenGLが使えない
・自分では何もできない
・プログラミング・数学ができない
・日本語が分からない
としてこのスレを出て行ってもらおう
みんなシカトな
0080デフォルトの名無しさん
2010/11/30(火) 14:27:24とりあえずレス全部読んでから書き込んでいただけます?
お前は一体誰と戦ってるんだ
0081デフォルトの名無しさん
2010/12/05(日) 12:33:43それって何の意味もなくね
0082デフォルトの名無しさん
2010/12/06(月) 10:16:21コンテキストスイッチってマルチウィンドウという意味かな?
だったら次の3.0で対応
0083デフォルトの名無しさん
2010/12/06(月) 16:55:03海外のサイト見てもリンカエラー、実装されてねえぞとの報告ばっかり
0084デフォルトの名無しさん
2010/12/07(火) 10:24:34レンダリングコンテキストの扱いを度外視してるから
どの道APIを直接叩かないとダメだよ
ライブラリに依存したソースに後からマルチスレッドを実装するとなれば、おそらくソース全修正レベル
まあそれが”ライブラリ”の常なんだけどね
バージョンアップの度に指向を二転三転させ、開発者の脳と体を爆発させかねないブレを見せてるのはこれくらい
上にも挙がってるけど、GLが嫌われてるのはそういうところかな
なまじ汎用性が高いからタチが悪い
0085デフォルトの名無しさん
2010/12/09(木) 15:13:11頂点バッファ+固定機能(OpenGL1.5くらい)で、モデルの透明度を毎フレームを変化させたいのですが
こういう時は頂点カラーを変更して頂点バッファを送り直すものなんでしょうか?
頂点カラーはそのままで、もうひとつ任意のアルファ値を乗算させる方法はありますか?
つまり glBlendFunc(GL_SRC_ALPHA * GL_CONST_ALPHA, ...); みたいなことはできます?
0086デフォルトの名無しさん
2010/12/09(木) 15:31:41あとから一括して乗算できると便利なんだけど。
0087デフォルトの名無しさん
2010/12/09(木) 17:56:010088デフォルトの名無しさん
2010/12/09(木) 20:01:32透明度が変わるたびにそのテクスチャだけ転送しなおせば
転送量が小さくなるってことでしょうか?
でも元々テクスチャを貼ってある場合はどうするです?
あ、テクスチャコンバイナ関数・・・とかいうのを使う?
0089デフォルトの名無しさん
2010/12/09(木) 21:52:30しかし標準でGL_MODULATEだから特にいじる必要なさそうだな
GL_TEXTURE1にアルファだけの1x1テクスチャをバインドして有効にするだけ
GL_COMBINE使えば1x1テクスチャ用意する必要もなく定数設定してかけることもできそうだが試したことはない
0090デフォルトの名無しさん
2010/12/10(金) 00:02:440091デフォルトの名無しさん
2010/12/10(金) 16:40:32その発想はなかったですが、頂点カラー配列を自由に使えるようになったとしても
頂点バッファを毎フレーム送り直すのは変わらなくないですか?
glDisableClientState(GL_COLOR_ARRAY) したら単にデフォルトの白になりますよね?
(・・・あれ?デフォルト色って指定できるんでしょうか?)
>>89のGL_COMBINEでテクスチャ用意しなくても定数乗算っていうのが一番イメージに近いですが
特殊っぽいので、もしうまくいっても結局グラボによって動かないとかありそうですね・・・
難しそうなのは分かりました。シェーダが使えない場合は素直に頂点バッファ送りなおしの方向で考えます
ありがとうございました
0092デフォルトの名無しさん
2010/12/10(金) 16:45:08汎用的に実装できるかな・・・ありがとうございました
0093デフォルトの名無しさん
2010/12/10(金) 17:22:300094デフォルトの名無しさん
2010/12/10(金) 17:23:38(BVOの意味ないじゃん)
0095デフォルトの名無しさん
2010/12/10(金) 19:17:100096デフォルトの名無しさん
2010/12/10(金) 19:35:210097デフォルトの名無しさん
2010/12/10(金) 23:47:25しかし元が固定機能でって話なので
0098デフォルトの名無しさん
2010/12/15(水) 00:23:52Shader中で、forループを使うと、非常に遅くなるんですが、繰り返し処理をべた書き(9周程度の処理なので、9行のコードを記載)したところ、サクサクうごきました。そういうもんなんでしょうか?
ちなみに、実行環境はiPhone4です。
0099デフォルトの名無しさん
2010/12/15(水) 11:41:350100デフォルトの名無しさん
2010/12/15(水) 12:08:54典型的な会話ができない人だな。
0101デフォルトの名無しさん
2010/12/15(水) 12:15:250102デフォルトの名無しさん
2010/12/15(水) 18:17:21テキストや別ファイルから読み込む方法ってありませんか?
0103デフォルトの名無しさん
2010/12/15(水) 21:55:54GLSLコンパイラによってはループの展開など最適化を自動でしてくれるがiPhoneではそんなものかも
>>102
renderに打ち込むの意味がわからないんだが、
テキストや別ファイルから読み込むコードは自分で書くか
読み込み用のライブラリを使ってくれ
0104デフォルトの名無しさん
2010/12/18(土) 16:00:19オープンソースなライブラリご存知ないでしょうか?
0105デフォルトの名無しさん
2010/12/18(土) 16:28:220106デフォルトの名無しさん
2010/12/18(土) 20:59:48ttp://www.youtube.com/watch?v=MXS3xKV-UM0
0107デフォルトの名無しさん
2010/12/18(土) 21:09:54Qtの中でOpenGL使うのは普通だけど逆は初めて見た。
0108デフォルトの名無しさん
2010/12/18(土) 23:04:300109デフォルトの名無しさん
2010/12/18(土) 23:15:180110デフォルトの名無しさん
2010/12/18(土) 23:46:53UVマッピングだな。
0111デフォルトの名無しさん
2010/12/18(土) 23:56:00テクスチャー画像変えたかったらバインドし直すしかあるまいて
0112デフォルトの名無しさん
2010/12/19(日) 00:09:360113デフォルトの名無しさん
2010/12/19(日) 00:14:100114104
2010/12/20(月) 10:17:26GLUT系はオープンソースではないので、少し躊躇してしまいました。
#今後趣味として、ライフワーク的に改良するアプリを作りたいなぁと...
>>106
Qtは仕事で触っているのですが、このような使い方ができるとは思いませんでした。
(>>107さんと同じ考えでした)
少し研究してみたいと思います。
ありがとうございました。
0115デフォルトの名無しさん
2010/12/20(月) 10:26:50OpenGL4.0がリリースされたそうですが、>>1の必読書やっとけば鉄板でしょうか?
また、サウンド関連などは何を使えばいいのでしょうか?
0116デフォルトの名無しさん
2010/12/20(月) 10:34:01サウンドはOpenALとかかな。
0117デフォルトの名無しさん
2010/12/20(月) 10:39:59OpenALですか。ありがとうございます!
DirectXが10・11から大幅に仕様が変わったという話なのですが、
OpenGL4.0は以前のバージョンからの拡張という感じなのですか?
それとも、まだそういった情報はあまり来ていないのでしょうか。
0118デフォルトの名無しさん
2010/12/20(月) 11:17:49それにそれぞれ対応するのがOpenGL3.xとOpenGL4.0。ちなみに最新版はOpenGL4.1。
でもOpenGLは互換プロファイルってのを使えば過去の機能も一応使える。
これらの習得は君が思ってる以上に長い道だと思うけど頑張って。
0119デフォルトの名無しさん
2010/12/20(月) 11:43:38おお・・・。DirectXと同じような形になってるのかぁ・・・。
どっちをやっても労力は一緒っぽいですね・・・。
とりあえずOpenGL3.xあたりから勉強してみます。
0120デフォルトの名無しさん
2010/12/20(月) 11:54:390121デフォルトの名無しさん
2010/12/20(月) 19:54:11ttp://www.cutt.co.jp/book/978-4-87783-255-1.html
なんか新しい本でてるね
0122デフォルトの名無しさん
2010/12/20(月) 19:55:14よくみたら、仕様書の翻訳か・・・
それにしても高いな
0123デフォルトの名無しさん
2010/12/20(月) 20:00:02アホな本出されるより仕様書を訳してくれた方がありがたい。
0124デフォルトの名無しさん
2010/12/20(月) 20:39:58かなりの分量ある物全体に渡ってチェックの質を高く保つために、
価格も高いんだろ
そうだと信じたい
0125デフォルトの名無しさん
2010/12/20(月) 20:43:07あらためて読むと知らないことが意外にあったりするんだが
OpenGL SuperBibleあたりが訳されたら便利そうだけど厚いから翻訳は望めないか
0126デフォルトの名無しさん
2010/12/21(火) 12:14:23gluBuild2DMipmaps がエラーになります。
これはもうglu.hは使うなということでしょうか?
助けて。
0127デフォルトの名無しさん
2010/12/21(火) 12:21:10何でやねん。
このパッケージを入れるとOpenGLがnvidiaからmesaに変わりそうで入れなかったのですが、
特にそういうこともないようです
0128デフォルトの名無しさん
2010/12/21(火) 23:47:27書いてある事がよくわからないときはExtension Restoryとかどっかのサイトを調べたりするけど。
0129デフォルトの名無しさん
2010/12/21(火) 23:56:33書いてある事がよくわからないときは転職サイトを調べたりするけど。
0130デフォルトの名無しさん
2010/12/22(水) 01:02:080131デフォルトの名無しさん
2010/12/22(水) 06:42:40OpenGLのオンラインゲームをSCFH DSFを使ってフルスクリーンでニコ生とか配信したいのですが
Windows7だとフレームバッファの違いなのか真っ暗にしか映りません。
XPだとちゃんと配信できるみたいですが・・・
DxtoryというソフトもありますがあまりにもSCFHの仕様が好きすぎてソフトを変えずに配信したいです。
その場合SCFHのプログラムをどのように扱えばいいのか、またコマンド?次第ではWindows7でも
配信できるのか知りたいです。
プログラムとかはまったくの初心者です。
知恵をお借りしたいです。
0132デフォルトの名無しさん
2010/12/22(水) 06:51:54PCゲームのプレイ動画をキャプチャする方法
ttp://hibari.2ch.net/test/read.cgi/pc/1207519775/
検索したらこんなスレがあったよ
そこできけばいいよ
0133デフォルトの名無しさん
2010/12/22(水) 06:54:50SCFH DSFでググレば色々でてくるわけだが・・・
0134デフォルトの名無しさん
2010/12/22(水) 07:39:34ちょっと覗いてきます!
>>133
色々ぐぐって探しましたがSCFHを使ってWindows7でフルスクリーン配信は無理という結果しか
出てこず頭をかかえておりました。
これはもうSCFHを改良するしかないと思いここに書き込ませていただきました。
スレチっぽかったですね・・すみません;w;
ありがとうございました!
0135デフォルトの名無しさん
2010/12/22(水) 09:29:11どいつもこいつも何故かOpenGL使ってると失敗する。
0136デフォルトの名無しさん
2010/12/22(水) 14:11:390137デフォルトの名無しさん
2010/12/24(金) 16:27:15これを高速で拡大/縮小したい。
なんかいい方法ない?
0138デフォルトの名無しさん
2010/12/24(金) 19:32:39消える(ように見える)現象に悩まされています。
1. CreateWindow()でウィンドウを生成
2. WM_CREATEが発生した時にテクスチャオブジェクトを作成する。
3. 再描画が発生した際(WM_PAINT発生時)に、2で生成しておいた
テクスチャオブジェクトをglTexCoord2f()、glVertex2fs()で表示する。
という処理で、3でテクスチャの内容が表示されません。
(テクスチャが表示されるべき箇所に、白くベタ塗りされる)
3の処理が発生する度に、glTexParameteri()で拡大縮小フィルタの設定と、
glTexImage2D()で画像の設定をしてやると、正常に描画されます。
GLUTで同様のコードを書くと、正常に描画されるのですが。
何が悪いんでしょうか。
0139デフォルトの名無しさん
2010/12/24(金) 19:45:15使っているのはMacのXcodeです。
- (void) render
{
static const GLfloat squareVertices[] = {
-0.5f, -0.5f,
0.5f, -0.5f,
-0.5f, 0.5f,
0.5f, 0.5f,
};
↑この『-0.5f, -0.5f,』の部分をテキストファイルから読み込んで表示したいと思っています。
0140デフォルトの名無しさん
2010/12/24(金) 19:47:01できます。できなったら怖いです。
0141138
2010/12/24(金) 20:01:14GL_INVALID_OPERATIONを返しているのが直接の原因のようです。
エラーが出るような変な場所で呼んではいないと思うんだけどなあ...
0142138
2010/12/24(金) 20:11:44テクスチャオブジェクトを呼ぶようにすることで、テクスチャオブジェクト
の描画に成功しました。
気持ち悪いですが、解決ということで。
0143デフォルトの名無しさん
2010/12/24(金) 20:55:05glGenTextures()を呼んでいるのでは?
まれによくある。
0144デフォルトの名無しさん
2010/12/24(金) 20:56:42CreateWindow()がデバイスコンテキストを作成する前じゃないの?
0147デフォルトの名無しさん
2010/12/24(金) 22:52:37テキストからの読み込みってどのような方法がありますか?
0148デフォルトの名無しさん
2010/12/24(金) 23:01:530149デフォルトの名無しさん
2010/12/24(金) 23:18:52それってプログラムのどの辺に書き込めばいいんですか?
たびたびすいません
0150デフォルトの名無しさん
2010/12/24(金) 23:21:520151デフォルトの名無しさん
2010/12/24(金) 23:26:380152デフォルトの名無しさん
2010/12/24(金) 23:50:330153デフォルトの名無しさん
2010/12/27(月) 01:53:55スクリーン座標をうまく得ることができず、
視点移動するとどうしてもおかしくなってしまいます
glReadPixels
GluUnProject
この2つを使ったのですがZ値が奥にいったりしてしまいます・・・
なんかいい方法はありませんでしょうか?
よろしくお願いします。m(_ _)m
0154デフォルトの名無しさん
2010/12/27(月) 09:45:29投影行列をこう設定して、
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho (0, 640, 0, 480, -1, 1);
例えば画面全体を覆う板ポリゴンを描くには、
glBegin (GL_TRIANGLE_STRIP);
glVertex3f (640,0,0);
glVertex3f (640,480,0);
glVertex3f (0,0,0);
glVertex3f (0,480,0);
glEnd ()
でOK。
0155153
2010/12/27(月) 15:01:10無事解決できました。
0156デフォルトの名無しさん
2010/12/27(月) 15:22:13この関数(drawTexture)を実行する前に行った↓のglColor4fが1つ目のボタン画像にしか摘要されず
、1つ目のボタン画像以外透過処理されずに出力されてしまいます。
gl.glColor4f(0x10000, 0x10000, 0x10000 , 0.5f);
関係ないかもしれませんが、draw処理の前に一度かならず下記の処理を記述しています。
gl.glColor4x(0x10000, 0x10000, 0x10000, 0x10000);
どうかこのボタンすべてに透過処理を行う方法をご教授くださいませんか?
drawTexture関数
// テクスチャユニット0番をアクティブに
省略
gl.glBindTexture(GL10.GL_TEXTURE_2D, tex_id);
// モデルビュー行列を選択
gl.glMatrixMode(GL10.GL_MODELVIEW);
// 現在選択されている行列(モデルビュー行列)に、単位行列をセット
gl.glLoadIdentity();
// 行列スタックに現在の行列をプッシュ
gl.glPushMatrix();
gl.glTranslatef(x, y, 0);
gl.glRotatef(angle, 0.0f, 0.0f, 1.0f);
gl.glScalef(scale_x, scale_y, 1.0f);
ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4); // square
vbb.order(ByteOrder.nativeOrder());
vertexBuffer = vbb.asIntBuffer();
vertexBuffer.put(vertices);
vertexBuffer.position(0);
gl.glVertexPointer(3, GL10.GL_FIXED, 0, vertexBuffer);
gl.glTexCoordPointer(2, GL10.GL_FIXED, 0, IntBuffer.wrap(texCoords));
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
gl.glPopMatrix();
0157デフォルトの名無しさん
2010/12/27(月) 16:48:56そっちも多分理由があって呼んでるはずだからdrawTextureに入ったら改めて自分でglBlendFunc()を呼んでセットし直せばいい。
0158デフォルトの名無しさん
2010/12/27(月) 16:52:22×:gl.glColor4f(0x10000, 0x10000, 0x10000 , 0.5f);
○:gl.glColor4f(1, 1, 1, 0.5)
1以上は1にクランプされるから平気だけど。
0159デフォルトの名無しさん
2010/12/27(月) 18:19:43ボタンラベルを描画するクラス内部でglBlendFuncを行っていました
のでラベル表示のループとボタン描画のループを分けることで無事解決しました。
有難うございました。
>>158
参考書通りの記述ですが、結構前から疑問に思いつつ放置していた部分です。
2つも同時に学べることができました。
13000円の参考書を買おうか、この時点で迷っていましたが助かりました!
0160デフォルトの名無しさん
2010/12/28(火) 07:46:05コードを書いたのですが、明らかに背景の点が背景以外に入る事があります。
調べてみるとdepthが0.99くらいの微妙な数値になっているようで、
透視投影の設定がまずいのかと見返しましたが原因がわかりません。
原因としては何が考えられますでしょうか?
もしよろしければご教授ください。
0161デフォルトの名無しさん
2010/12/28(火) 08:51:24有限桁の浮動小数であらわしている以上微妙な誤差は出る。
0162デフォルトの名無しさん
2010/12/28(火) 11:31:44そういうものですか…。
ありがとうございます。他の方法を考えてみます。
0163デフォルトの名無しさん
2010/12/28(火) 17:20:062枚とも並べると画面に入らないため、画像で特に表示させたくない部分は
画像を切り取って表示させようと思っています。
すでにロードしているテクスチャを座標を指定して切り取る方法をご存知の
方、教えて頂けませんでしょうか?
0164デフォルトの名無しさん
2010/12/28(火) 17:32:17glTexCoord2f(s,t)で(s,t)を変えれば終わりだろ。
0165デフォルトの名無しさん
2010/12/28(火) 17:33:080166デフォルトの名無しさん
2010/12/28(火) 18:09:480167デフォルトの名無しさん
2010/12/30(木) 23:25:37glDrawArraysをした後、レンダリングした実座標を取りたいんですが何を見ればわかるんでしょうか?
0168デフォルトの名無しさん
2010/12/30(木) 23:35:05必要ならgluProjectなりなんなりで自分で計算してください
0169デフォルトの名無しさん
2010/12/30(木) 23:35:41それなら描画しようとしてる頂点の座標にプロジェクション×モデルビュー行列かけて、さらにビューポートの座標でどこに相当するかを考えればわかると思うけど。
固定機能でならgluProjectとかがあった気がする。
0170デフォルトの名無しさん
2010/12/30(木) 23:40:47>>169
自分で計算するしかないんですね、大変そう・・・
レスありがとう!
0171デフォルトの名無しさん
2011/01/02(日) 01:10:21球とかドーナツ型とかのメッシュを自動生成してくれるライブラリみたいのはないでしょうか?
座標と描画順を吐き出してくれるライブラリがあるとすごくうれしいんですけど。
0172デフォルトの名無しさん
2011/01/02(日) 01:30:27Cylinder, Sphere, Torusはいけるはず
0173デフォルトの名無しさん
2011/01/02(日) 02:08:570174デフォルトの名無しさん
2011/01/02(日) 02:35:17>>173
球はSphereで、ドーナツはTorusなんですね。Ballとかdoughnutで調べてました。
Direct3DでTeapotって関数を見つけたんですけど、さすがに使い道はなさそうですw
OpenGLの仕事が入ってきたのですが、Direct3Dも含めて3Dは初めてだったので困っていました。
ありがとうございます。早速調べてみます。
0175デフォルトの名無しさん
2011/01/03(月) 17:58:58モーション作るのに他にいいのある?
0176デフォルトの名無しさん
2011/01/03(月) 18:07:430177デフォルトの名無しさん
2011/01/04(火) 15:24:18なにか回避策ないでしょうか? Quadro買わなきゃダメかな。
あと、GTX580 でこの問題を試した方いますか?
0178デフォルトの名無しさん
2011/01/05(水) 17:31:400179デフォルトの名無しさん
2011/01/05(水) 18:31:40自作の行列計算のプログラムを使うよりも速いのですか?
0180デフォルトの名無しさん
2011/01/05(水) 18:45:52OpenGLESで2Dテクスチャを画面サイズに合わせて表示すると白画面に
なってテクスチャが表示されません。(エミュレータだと表示可能)
すべてのテクスチャを2の累乗にしても駄目でした。
画面サイズに合わせてテクスチャのサイズを変更したのがまずかったのでしょうか?
どなたか何故この状態になるのかご教授頂けないでしょうか?
0181デフォルトの名無しさん
2011/01/05(水) 18:59:32ユーザが計算した行列をglMultMatrixとかglLoadMatrixで読み込ませるのは遅いらしいと聞いたことはある
OpenGLがそこから逆行列を計算しなければならないためらしい
glTranslateとかglRotateとかglScaleとかで操作するときは逆行列の計算もその逆向きの操作をするだけなので速いということらしい
本当かどうか確認したことはないので正しいのかどうかはわからない
0182デフォルトの名無しさん
2011/01/05(水) 19:04:07あまり役に立たないかもしれないがglGetErrorでどこかエラーが発生してないか確認してみては
0183デフォルトの名無しさん
2011/01/05(水) 19:15:17よく確認するとテクスチャが2の累乗画像(正方形)ではありませんでした。
0184デフォルトの名無しさん
2011/01/05(水) 19:56:09ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
0185デフォルトの名無しさん
2011/01/06(木) 16:31:45フェードアウト処理は
gl.glColor4f(1, 1, 1 , fdInAlphaNum);のfdInAlphaNumを徐々に
増やしていきながら、黒の画像をフレームバッファに描画する形で
出来ていますが、フェードイン処理については黒の画像のアルファ値
徐々に減らしても、黒い画像から一気に描画させたい画像を表示して
しまいます。
フェードイン処理をうまくやる方法を教えてください。
0186185
2011/01/06(木) 17:08:150187デフォルトの名無しさん
2011/01/07(金) 00:13:41ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
0188デフォルトの名無しさん
2011/01/08(土) 01:27:51現行の10倍以上に上がってるみたいだね
http://pc.watch.impress.co.jp/img/pcw/docs/417/996/html/graph05.gif.html
0189デフォルトの名無しさん
2011/01/08(土) 09:16:44それよりIntelがやっとまともなOpenGLを提供するのがうれしい。
0190デフォルトの名無しさん
2011/01/08(土) 23:51:000191デフォルトの名無しさん
2011/01/09(日) 06:34:01ミドルのGTS250でも36fps出るようなベンチだから
やっと動作対象に入ったレベルだけどね
http://tshimizu.cocolog-nifty.com/photos/uncategorized/2010/02/18/cinebench_r115_3.jpg
0192デフォルトの名無しさん
2011/01/09(日) 18:22:58C++での配列確保するときに
テクスチャの配列を動的に作りたいと思っています。
GLubyte teximg[TEXHEIGHT][TEXWIDTH][4];
vector型などでは大丈夫なのだと思っていますが
GLubyteでこのような取り方をするためにはどのような記述になるのでしょうか
0193デフォルトの名無しさん
2011/01/09(日) 18:47:340194デフォルトの名無しさん
2011/01/09(日) 18:56:080195デフォルトの名無しさん
2011/01/09(日) 19:02:40てかOpenGL関係ないじゃないか
0196デフォルトの名無しさん
2011/01/09(日) 19:15:23GLubyteでの格納の仕方があるかと思い
mallocでCと同じようにやるのですね。ありがとうございました
0197デフォルトの名無しさん
2011/01/09(日) 22:31:10(一般的に)GLubyte = unsigned char だぞ。
メモリのとり方なんぞCである以上そんな変わらん。
C++ならnewな。
0198デフォルトの名無しさん
2011/01/10(月) 16:01:18以下抜粋
glViewport(0,0,w,h);
//投影変換モード
glMatrixMode(GL_PROJECTION);
//行列を初期化
glLoadIdentity();
//平行投影
if (w<=h)
glOrtho(-nRange,nRange,-nRange*(h/w),nRange*(h/w),-nRange,nRange);
else
glOrtho(-nRange*(w/h),nRange*(w/h),-nRange,nRange,-nRange,nRange);
//モデルビュー変換モード
glMatrixMode(GL_MODELVIEW);
//行列を初期化
glLoadIdentity();
}
glLoadIdentifyの使い方がいまいちよくわかりません
どなたかご教示お願いします
0199デフォルトの名無しさん
2011/01/10(月) 16:02:33行列がわからないのだ
0200デフォルトの名無しさん
2011/01/10(月) 16:14:51そこでMODELVIEW行列をいじる必要はない。
0201デフォルトの名無しさん
2011/01/13(木) 17:25:30マウスの左ボタンと右ボタンの同時押し判定ってできますか?
VS2010のC++で開発してます
0202デフォルトの名無しさん
2011/01/13(木) 18:20:150203デフォルトの名無しさん
2011/01/14(金) 13:19:060204デフォルトの名無しさん
2011/01/14(金) 15:16:11decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_start_decompress" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_stdio_src" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_CreateDecompress" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_destroy_decompress" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_read_header" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_finish_decompress" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_read_scanlines" は未解決です。
1>decode-jpeg.obj : error LNK2001: 外部シンボル "_jpeg_std_error" は未解決です。
fatal error LNK1120: 外部参照 8 が未解決です。
とエラーが出ます
jpeg8bのヘッダーのライブラリを入れて行っているのですが、どうすればいいでしょうか?
VB2010C++でビルドしました
0205デフォルトの名無しさん
2011/01/14(金) 15:18:480206デフォルトの名無しさん
2011/01/14(金) 15:30:540207デフォルトの名無しさん
2011/01/14(金) 16:12:52そりゃlibjpeg.aがリンクできてない。
もとからリンクするように指定してないのか、見つけられないか。
0208デフォルトの名無しさん
2011/01/14(金) 21:58:38例えば中心(0,0,0)の立方体をgluSolidcube()で作ったとき、この立方体のどこに球が当たっても反射するようにするには球の座標を(x,y,z)として
if( x≧-1 && x≦1 && y≧-1 && y≦1 && z≧-1 && z≦1)
この条件だとどうしてだめなんでしょうか?
0209デフォルトの名無しさん
2011/01/14(金) 22:08:490210デフォルトの名無しさん
2011/01/14(金) 22:22:37A:球の中心
B:衝突地点
C:衝突地点の法線
A-Bで入射ベクトルを計算してCを軸とした反射ベクトルを計算すればいい。
0211デフォルトの名無しさん
2011/01/14(金) 22:37:24仮に半径r=0.5とすると、衝突判定に用いる球の座標には半径分(0.5)加算しています
球はgluSolidSphere()で描画しています
>>210
球が物体に接触しても反射しないで物体を完全に貫いてしまったり、一部の面でのみ跳ねかえったりして不思議に思い質問しました
0212デフォルトの名無しさん
2011/01/14(金) 22:58:45>>211
実際には
if( x≧-1-r && x≦1+r && y≧-1-r && y≦1+r && z≧-1-r && z≦1+r)
みたいにしてるってことですかな。で、当たってたら球の速度の壁の法線方向を反転。
一度跳ね返ったら、干渉しなくなるまで次の反射の処理を行わないみたいな条件入れないとだめ。
とか。
0213デフォルトの名無しさん
2011/01/14(金) 23:01:360214デフォルトの名無しさん
2011/01/15(土) 01:12:52libjpeg.aとはなんでしょうか?
jpeg.libとヘッダー各種はプロジェクトのプロパティ設定で指定しているのですが違うのでしょうか?
0215デフォルトの名無しさん
2011/01/15(土) 01:26:24jpeg.libだけだと足りてないのでは?
dumpbin /symbols で、_jpeg_start_decompress他がjpeg.libに含まれてるか要確認。
0216デフォルトの名無しさん
2011/01/15(土) 03:03:39> if( x≧-1 && x≦1 && y≧-1 && y≦1 && z≧-1 && z≦1)
これ立方体だろ?
0217デフォルトの名無しさん
2011/01/15(土) 09:14:500218デフォルトの名無しさん
2011/01/15(土) 10:50:46球と立方体の衝突はそこそこめんどくさい
衝突判定でググってみれば
0219208
2011/01/15(土) 11:57:57レスくれた方ありがとうございました
0220デフォルトの名無しさん
2011/01/15(土) 16:59:360221デフォルトの名無しさん
2011/01/15(土) 17:52:45それが質問なのか?
0222デフォルトの名無しさん
2011/01/15(土) 17:52:540223デフォルトの名無しさん
2011/01/16(日) 10:41:33まじめに衝突だけ勉強するなら分厚い本とかあるけど
とりあえずなら「実例で学ぶゲーム3D数学」って本がオススメ
色んなことがひと通り書いてある
0225デフォルトの名無しさん
2011/01/19(水) 12:40:07(起動して描写される回とされない回がある)(頂点はglVertex3d)
GeForceでなくQuadroじゃないとダメって事なんでしょうか?
Qtでハードウェアアクセラレーションを有効にするにはどうすればいいか
わからないので教えてください。
0226デフォルトの名無しさん
2011/01/19(水) 13:00:51GL_LINE_STRIPの件については自己解決しました。
0227225
2011/01/19(水) 14:08:33CAD作成中なんですけど
線は円柱で書いた方が良いんでしょうかね?
0228デフォルトの名無しさん
2011/01/19(水) 14:20:57描画されないことがあるのなら、それは描画しないことがあるプログラムだからです。
デバッグしてください
0229デフォルトの名無しさん
2011/01/19(水) 15:34:53あとラインとかポイントは自体不明瞭な動作をすることがあるし、よくわからん。
0230225
2011/01/19(水) 21:57:44以下参考
配列をvectorにした所、領域外アクセスを検出できました。
C言語による最新アルゴリズム辞典のspline.cのmaketable関数中にありました。
0231デフォルトの名無しさん
2011/01/23(日) 01:53:37OpneGLでV同期を取る方法ですが、
SwapBuffers()を高優先度スレッドで呼ぶようにし、
メインスレッドをシグナルで起こすように実装しています。
なぜかSwapBuffers()がV同期待ちをしてくれず、
高優先度スレッド側でsleep()を呼ばないと、
メインスレッドにCPU時間が回らない状況です。
高優先度スレッドでV同期&スワップバッファが終わった後、
メインスレッド起動、メインスレッドの仕事が終わったら
V待ち関数(条件変数待ち)でメインスレッドをスリープし、
あまった時間を低優先度スレッドに渡すようなフレームワークを考えています。
グラフィックボードはATI Radeon HD4550です。
wglSwapIntervalEXT()をつかってもV同期が取れません。
PCのOpenGLの設定も、常にV同期待ちを行うように設定しています。
原因、解決方法がわかるか方がいたらお願いします。
0232デフォルトの名無しさん
2011/01/23(日) 04:28:230233デフォルトの名無しさん
2011/01/23(日) 04:46:49MAX_EVAL_ORDERは4000程なのに。
Radeonだとすんなり通る
今時glMap2*()なんて使ってる方が悪いのか
0234デフォルトの名無しさん
2011/01/23(日) 05:13:23ustrideやvstride等の指定と、uorderかvorderとその配列の内容が間違っていて
バッファオーバーランしてるのを、ATIのドライバがエラー出さずに動いてるだけかも知れないだろ
因みに、glMap2*()のINVALID_VALUEの内容はもっと他にあるからね
GL_INVALID_ENUM is generated if target is not an accepted value.
GL_INVALID_VALUE is generated if u1 is equal to u2, or if v1 is equal to v2.
GL_INVALID_VALUE is generated if either ustride or vstride is less than the number of values in a control point.
GL_INVALID_VALUE is generated if either uorder or vorder is less than 1 or greater than the return value of GL_MAX_EVAL_ORDER.
GL_INVALID_OPERATION is generated if glMap2 is executed between the execution of glBegin and the corresponding execution of glEnd.
GL_INVALID_OPERATION is generated if glMap2 is called and the value of GL_ACTIVE_TEXTURE is not GL_TEXTURE0.
0235デフォルトの名無しさん
2011/01/23(日) 05:22:21OpenGLの初期化を行ったスレッド以外ではGL関数を使わない設計にする
普通はメインスレッドで初期化を行って、メインスレッドでしかGL関数を使わない
他のスレッドは、GL関数を使わない処理や何かに回す
0236デフォルトの名無しさん
2011/01/23(日) 16:20:23レスありがとう
Radeonではもっともらしい結果が出力されたので、Geforceドライバが悪いと思い込んでいました。
よく考えたら、glMap2*()なんて枯れたコマンドが正しく動作しないはずがないですよね。
もっとよくテストしてみます。ありがとう。
0237デフォルトの名無しさん
2011/01/23(日) 17:06:58>glMap2*()なんて枯れたコマンドが正しく動作しないはずがないですよね。
どうなんだろう、そのコマンドは調べてないけど
3.0以降は2.0以下の機能を切り捨てるって話じゃなかったっけ?>GPUベンダ
0238デフォルトの名無しさん
2011/01/23(日) 19:19:08glMap2*()は確かにdeprecatedみたいだったので、compatibility profileで動かせば
サポートされると思って使っていたんですが、違うのかな。
しかしどちらにしろ、引数を変えるとエラーが出るという状態なので機能切り捨てのせいではないんじゃないかと思います。
0239デフォルトの名無しさん
2011/01/23(日) 19:30:11コントロールポイントが常に変わるようでなければ
自分で計算した結果をバッファに置いた方が速いと思うよ。
それかシェーダー組むか。
glutSolidTeapotが重いのもそのせいだと思う。
0240デフォルトの名無しさん
2011/01/24(月) 21:52:47回答ありがとうございます。
>普通はメインスレッドで初期化を行って、メインスレッドでしかGL関数を使わない
SwapBuffers()の呼び出しをメインスレッドで実行するようにしても、
SwapBuffers()がV同期してくれません。
(すべてのGL関数はメインスレッドからコール)
何か根本的に間違ってそうなので、実装を再確認してみます。
0241デフォルトの名無しさん
2011/01/25(火) 16:08:09古いノートパソコンだと動いてくれない
ビデオカードの制約あるの?
0242デフォルトの名無しさん
2011/01/25(火) 16:24:50正確なバージョンは知らん。
0243デフォルトの名無しさん
2011/01/25(火) 18:56:44管理者権限ないパソコンで動かしたい
0244デフォルトの名無しさん
2011/01/26(水) 03:57:02PFD_DOUBLEBUFFERで作ってglDrawBuffer(GL_BACK)はしてる・・よね?
でもRADEONは知らないけど、うちのオンボードチップだとSwapBuffers()でV同期しない
同じコードでGeForceならV同期する。ドライバによるんだと思ってたんだが
wglSwapIntervalEXT()って知らなかったので今度試してみるトン
0245デフォルトの名無しさん
2011/01/26(水) 09:50:240246デフォルトの名無しさん
2011/01/26(水) 12:39:250247デフォルトの名無しさん
2011/01/27(木) 00:13:53枯れた技術選ぶ企業には不要
0248デフォルトの名無しさん
2011/01/27(木) 07:24:05たとえ1社が文句言ったって、普通は採用されないだろ
グループ内の多数の企業が同意して、しかも更に細かい差違を吸収した折衷案が
グループの総意として仕様に盛り込まれるんだろ?
「グループ内の多数の会社が同意して」という案は、
グループに入っていない多くの企業もたいていは求めてるものじゃないの?
文句を言えるくらいじゃメリットは分らんな
0249デフォルトの名無しさん
2011/01/27(木) 18:54:21会社でかいくせにコミュニティに貢献しないケチって思われるデメリットはあるかも
0250デフォルトの名無しさん
2011/01/27(木) 21:13:56任天堂はグラフィックスに関しては必要ないんじゃね
プラットフォームはそう頻繁に変わらないしデベロッパはいるしな
0251デフォルトの名無しさん
2011/01/28(金) 15:16:39キーボードの同時押し判定のやり方がよくわかりません。
ttp://d.hatena.ne.jp/yumeno/20071218
このページによると、freeglutではキー同時判定ができると
書いてはあるのですが、具体的な方法が載ってませんでした
glutKeyboardFunc()を使うと思うんですが、誰か知りませんか?
0252デフォルトの名無しさん
2011/01/28(金) 17:07:48やり方は>>202-203と同じで
つかそのブログの人今でもブログ続けてるみたいだし、直接コメントでも付けて聞けばいいんじゃないの?
0253デフォルトの名無しさん
2011/01/28(金) 17:40:09firefo4動かすまではできた
firefoxのabout:configで
libGL.soまでのパス通したらいいらしいんだけど
なんとかmesaなんとか
という関数がねえ
というエラーを吐いて何も表示されない
多分mesaなんとか.soというのは自力make installしないといけないんだろうけど
どのファイルからmakeしたらいいのかわからない
0255デフォルトの名無しさん
2011/01/28(金) 21:50:58error: ‘glWindowPos2i’ was not declared in this scope
と言われてコンパイルできません。
gl.hとglut.hをインクルードしてますが、他に何をインクルードすればいいでしょうか。
0256デフォルトの名無しさん
2011/01/28(金) 22:34:33openGL1.4 のextensionなので、自分でどうにかするか、もしくはglewとかの便利ライブラリを使ったりする
0257255
2011/01/28(金) 22:39:17それでやってみます。
0258255
2011/01/28(金) 23:11:26狂ってるとしか思えないのですが・・・・もう少し何とかならないのか
0259デフォルトの名無しさん
2011/01/29(土) 00:41:14大量の拡張機能の関数のポインタをゲットするのに関数名を文字列リテラルとしてプログラムに埋め込まないといけない.
それ用のgl3.hとopengl3.libとドライバをnVidiaが配布してくれれば・・・.
しかしそれ以外に現在の拡張機能を拡張機能でないようにする利点はあるだろうか。
0260デフォルトの名無しさん
2011/01/29(土) 18:16:25firefoxってportable版だと管理者権限いらんのとちゃうか?
firefox4版があるのかは知らんが。
0261デフォルトの名無しさん
2011/01/29(土) 18:18:42ってlinuxか。犬板で聞けば?
0262デフォルトの名無しさん
2011/01/30(日) 04:37:340263デフォルトの名無しさん
2011/02/04(金) 23:24:000264デフォルトの名無しさん
2011/02/05(土) 14:47:07フレームバッファとレンダーバッファの違いがよくわかりません。
レンダーバッファとはどういうものなのですか?
またどのような場面で活用するんでしょうか?
よろしくお願いします。
0265デフォルトの名無しさん
2011/02/05(土) 15:14:00フレームバッファはコンテナ
0266デフォルトの名無しさん
2011/02/06(日) 03:10:07>フレームバッファオブジェクトはカラーバッファやデプスバッファなど, いくつかのバッファの集合体 (collection) です.
>カラーバッファにレンダリングされた画像を後でテクスチャとして使うので, カラーバッファにはテクスチャを割り当てます.
>デプスバッファは隠面消去処理だけのために使う (内容をテクスチャとして参照しない) ので, レンダーバッファを割り当てます.
0267デフォルトの名無しさん
2011/02/07(月) 22:56:40>>265
余計わからなくなりました・・・。orz
>>266
両方フレームバッファに割り当てていましたが
>(内容をテクスチャとして参照しない)
とのことで
「テクスチャとして再利用しない場合は
レンダーバッファの方が効率いいよ!」
みたいな感じなのでしょうか?
0268デフォルトの名無しさん
2011/02/07(月) 23:08:06で、カラーバッファーとデプスバッファーはその用途に応じて、書き込み先をレンダーバッファーもしくはテクスチャーを指定できる。
描画結果をテクスチャーとして使う予定があるなら、もちろん後者のほうが手軽。
でも名前からもわかるようにレンダーバッファーは描画専用に用意されているものだから、マルチサンプルが使えたり比較的高パフォーマンス?っていう利点がある。
0269デフォルトの名無しさん
2011/02/07(月) 23:18:44なるほど!
わかりやすい説明ありがとうございます!
>マルチサンプルが使えたり
この部分を知らなかったのでもう少し調べてみようと思います。
パフォーマンス以外にも何か色々と使えそうな気がします。
0270デフォルトの名無しさん
2011/02/12(土) 17:43:17メモリリークがあったので調べていたら
以下のところで発生していました。
glGenTextures( 3, tex );
で、以下のように書き直したら発生しなくなりました。
if( tex [0] ) glDeleteTextures( 3, tex );
glGenTextures( 3, tex );
glGenTexturesはGPU上にこれから確保するメモリ領域に
IDをつけて返すものだと思っていたのですが
メインメモリにも何か領域を確保していたりするのでしょうか?
よろしくお願いします。
0271デフォルトの名無しさん
2011/02/12(土) 21:39:450272デフォルトの名無しさん
2011/02/12(土) 21:46:030273デフォルトの名無しさん
2011/02/12(土) 22:10:42メモリーリークしてたってこと?それはそうなるんじゃない・・・?
VRAM確保してもどっかにテクスチャ保存しとかないとアプリ切り替えでVRAM破棄された時に困りそうだし
0274デフォルトの名無しさん
2011/02/12(土) 22:26:35VRAMに転送したあと破棄しています。
リークしているのはここ(ファイル読み込み)かな?と思って調べてみても
特に問題が見当たらず、問題を切り分けていくと
どうやらglGenTexturesの部分でリークしていました。
自分の認識ではglGenTexturesの段階では
VRAM内へのID(ハンドル)だけの発行で
メインメモリにはテクスチャの領域等は
何も確保していないものだと思っています。
VRAMが溢れるならともかく何故メインメモリが?と不審に思い
こちらに質問させて頂きました。
XP/VC2010です。
0275デフォルトの名無しさん
2011/02/12(土) 22:47:16IDとテクスチャーの関連付けの情報がメインメモリ上にあるのではないか、
そして、同じIDにたいしてglGenTexturesを繰り返すことによって、
破棄されない情報が溜まり続ける、とエスパーしてみる。
0276デフォルトの名無しさん
2011/02/12(土) 23:03:42多分、glGenTexturesで確保したら必ずglDeleteTexturesするってことで問題はないんだけど、
何か自分の信念と違う動きをするのでGLの内部の実装が気になるってことじゃないかなあ
内部実装は分からないけど、もし1つのアプリがVRAMを専有しっぱなしだと他のアプリがVRAM使えなくなるので
WindowsのglGenTexturesはVRAM領域だけじゃなく一時的に解放するための管理領域も確保すると思うよ
WindowsのGLはDirectXのラッパーのはずだからDirectXのデバイスロスト関係を調べてもらった方がよい気が
0277デフォルトの名無しさん
2011/02/12(土) 23:08:36あ、ごめん。うろ覚えで適当言ったけどwglがDirectXのラッパー?ってのは間違いかもしんない
なんかどっかでそういう話を見た気がしただけ
0278デフォルトの名無しさん
2011/02/12(土) 23:31:04どうやらメモリのリークを発生させるには
glGenTexturesだけでなくglBindTextureも必要なようです。
ID確保前にglDeleteTexturesを行えばリークは発生しません。
(↓もりもりメモリが食われていくのでテストする際は注意してください。)
void test::update(void)
{
for( unsigned i = 0; i < 100000; i++ )
{
for( unsigned j = 0; j < 3; j++ )
{
glGenTextures( 3, this->m_textureId );
glBindTexture( GL_TEXTURE_2D, this->m_textureId[j] );
}
}
}
glBindTextureが現況だとすると
たしかにメインメモリ上にラッパというか
IDとHWとの関連付けの情報を格納しているかもしれませんね。
0279デフォルトの名無しさん
2011/02/20(日) 01:59:42.20>for( unsigned j = 0; j < 3; j++ )
このループの中で
>glGenTextures( 3, this->m_textureId );
すれば、都合9つのテクスチャIDを取得しようとしてるんだがw
こうするべき
glGenTextures( 3, this->m_textureId );
for( unsigned j = 0; j < 3; j++ )
{
glBindTexture( GL_TEXTURE_2D, this->m_textureId[j] );
0280デフォルトの名無しさん
2011/02/20(日) 02:15:39.72お行儀悪いのは確かだが。
0281デフォルトの名無しさん
2011/02/20(日) 16:07:14.57これをメモリリークとは言わん。出直してこい。
0282デフォルトの名無しさん
2011/02/20(日) 16:43:37.64デリートし忘れ=メモリリークじゃないの?
0283デフォルトの名無しさん
2011/02/20(日) 20:17:24.42意図して尿を出すのが「小便」。
あとはわかるな?
0284デフォルトの名無しさん
2011/02/20(日) 20:23:55.12http://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF
0285デフォルトの名無しさん
2011/02/20(日) 20:30:30.61おむつに連続でおしっこすると漏れてしまうんですが
吸水できなくなって溢れるならともかく何故横漏れが?
0286デフォルトの名無しさん
2011/02/20(日) 21:17:51.77ライブラリがバグのために漏らしてしまうのも、
ライブラリ使用者が意図せずして(不注意で)漏らすのも、
どちらも同じメモリリークだと思ってた
0287デフォルトの名無しさん
2011/02/20(日) 21:42:31.280288デフォルトの名無しさん
2011/02/20(日) 22:20:03.92もう少しお上品に喩えてくれないか
0289デフォルトの名無しさん
2011/02/20(日) 23:06:41.160290デフォルトの名無しさん
2011/02/21(月) 10:19:09.100291デフォルトの名無しさん
2011/02/22(火) 16:57:14.41glTexParamter()でGL_CLAMP_TO_BORDERがないのですが、
同様の機能を実装するにはどうすればいいですか?
テクスチャーで(s,t)を[0,1]以外の領域を指定された場合、境界色を返せればいいです。
0292デフォルトの名無しさん
2011/02/22(火) 20:18:11.46VC2010で開発してます。
glEnable(GL_AUTO_NORMAL);
gluBeginSurface( theNurb );
gluNurbsSurface( theNurb, Nu+4, U, Nv+4, V, 3, 3*Nu, P, 4, 4, GL_MAP2_VERTEX_3 );
gluEndSurface( theNurb );
glDisable(GL_AUTO_NORMAL);
って感じに書いたら、曲面を描画することはできたんですが、
法線が反対向きみたいで、曲面が暗くなってしまいます。
GL_AUTO_NORMALで計算した法線の向きを逆向きにするにはどうすればいいでしょうか?
0293デフォルトの名無しさん
2011/02/23(水) 04:58:09.30でどう?
0294291
2011/02/23(水) 11:06:31.17自分で調べたが、まっとうな方法はない。
ちょうど今このスレでその話題が展開されていた。
http://article.gmane.org/gmane.comp.lib.cairo/21353
なんでGL_CLAMP_TO_BORDERないんだよ....
0295デフォルトの名無しさん
2011/02/23(水) 12:42:57.91テクスチャーの最外周を目的の境界色に塗っておけば代用は効きそう。
まぁ2次元的に扱うとかの理由でピクセル単位でテクスチャー表示しないといけない場合とかは、2のべき乗テクスチャーを諦めないといけなくなるから、
パフォーマンスとして好ましくないけど。
0296デフォルトの名無しさん
2011/02/23(水) 17:53:53.27元の画像width, heightに1ピクセル継ぎ足してwidth+1, height+1にすればいいけど、もっとめんどくさい。
プログラマブルシェーダーが使える2.0系列ならやりようはあるけど、
1.0系列ならあきらめるしか。
0297デフォルトの名無しさん
2011/02/23(水) 19:11:58.330298デフォルトの名無しさん
2011/02/24(木) 01:47:01.46以下のよう定義されている場合
回転成分とスケーリングってどの
値を見ると判別できるのでしょうか?
0.866 1.0 0.0
-0.5 1.73 0.0
5 0 1
0299デフォルトの名無しさん
2011/02/24(木) 02:11:36.830300デフォルトの名無しさん
2011/02/24(木) 03:37:33.24直行してないと難しいんじゃないでしょうか
0301デフォルトの名無しさん
2011/02/24(木) 17:55:18.74vbo_name, vbo_posとかつけてましたが、もっといい名前がありそうで...
くだらない質問ですみません。
0302デフォルトの名無しさん
2011/02/25(金) 01:20:38.92処理しているの関数なのですか?
0303デフォルトの名無しさん
2011/02/25(金) 01:44:42.52MesaっていうMITライセンスのOpenGL実装がありますよ
0304デフォルトの名無しさん
2011/02/27(日) 02:04:25.33丁度中点となる新しい位置をOpenGLで
簡単に求める関数ってありますか?
0305デフォルトの名無しさん
2011/02/27(日) 03:20:01.840306デフォルトの名無しさん
2011/02/27(日) 08:22:00.460307デフォルトの名無しさん
2011/02/27(日) 17:38:11.56ありがとうございます!
0308デフォルトの名無しさん
2011/02/27(日) 21:05:54.410309デフォルトの名無しさん
2011/02/27(日) 23:28:25.940310デフォルトの名無しさん
2011/02/27(日) 23:36:56.420311デフォルトの名無しさん
2011/02/28(月) 00:55:10.85自分でアルゴリズム作れないのですが
OpenGLに関数ないですか?
0312デフォルトの名無しさん
2011/02/28(月) 01:04:36.070313デフォルトの名無しさん
2011/02/28(月) 01:06:25.16クォータニオン扱うライブラリのソースみて実装すればいい。使うだけなら簡単だろう。
0314デフォルトの名無しさん
2011/02/28(月) 01:07:25.69数学ライブラリじゃないっつーの
0315デフォルトの名無しさん
2011/02/28(月) 01:24:20.06行列の計算の仕方が参考書と違ってて断念したorz
0316デフォルトの名無しさん
2011/02/28(月) 02:22:25.89↓このページのPythonのコードをコピーして実行してみたのですが
http://www.not-enough.org/abe/manual/program-aa08/pyopengl2.html
何も起こりませんでした。
うちのPCにはPython2.71が入っているのですが
PythonでOpenGLを使う場合、他にも何かインストールなりしないといけないのでしょうか。
0317デフォルトの名無しさん
2011/02/28(月) 03:47:29.33パルプンテでも唱えたような物言いだな。
0318デフォルトの名無しさん
2011/02/28(月) 10:30:20.96とか書かないとエスパー募集にしかならない。
0319デフォルトの名無しさん
2011/02/28(月) 21:47:10.69何も起こりませんでした。
↓このページのこのコードをコピーして
http://www.not-enough.org/abe/manual/program-aa08/pyopengl1.html
#!/usr/bin/python
from OpenGL.GL import *
from OpenGL.GLUT import *
def draw():
glClearColor(1.0, 0.0, 0.0, 0.0)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glFlush()
glutSwapBuffers()
glutInit(sys.argv)
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH)
glutInitWindowSize(320, 240)
glutCreateWindow("PyOpenGL 1")
glutDisplayFunc(draw)
glutMainLoop()
>>317-318
EclipseのPyDevで実行するとこんなエラーが出ました
Traceback (most recent call last):
File "C:\Users\username\workspace\PyOpenGL\src\PyOpenGL1.py", line 3, in <module>
from OpenGL.GL import *
ImportError: No module named OpenGL.GL
0320デフォルトの名無しさん
2011/02/28(月) 22:09:16.33座標系に統一する場合
Aの逆行列 x Bの行列 x GL_PROJECTION行列
で求めることが可能ですか?
0321デフォルトの名無しさん
2011/02/28(月) 23:23:19.62ImportError: No module named OpenGL.GL
OpenGL.GLという名前のモジュールがありません
知らんけどそのページの頭に
>PyOpenGL は、Python で OpenGL を使用するためのモジュールです。
って書いてあんだからPyOpenGLってのが必要なんじゃねの?
PyOpenGLでググれ
0322デフォルトの名無しさん
2011/02/28(月) 23:28:46.000323デフォルトの名無しさん
2011/02/28(月) 23:44:48.33「Aの逆行列」とは、どの座標系で定義されたベクトルを
どの座標系で定義されたベクトルに変換するための行列か?
「Bの行列」とは、どの座標系で定義されたベクトルを
どの座標系で定義されたベクトルに変換するための行列か?
「GL_PROJECTION行列」とは、どの座標系で定義されたベクトルを
どの座標系で定義されたベクトルに変換するための行列か?
それぞれ、「座標系X -> 座標系Y」というフォーマットで説明してみてくれ
そして、結局のところ「どの座標系で定義されたベクトルを
どの座標系で定義されたベクトルに変換したいのか」を
同じフォーマットで説明してみてくれ
でなければ、それが [Aの逆行列 x Bの行列 x GL_PROJECTION行列] で求められるのか
答えようがない
0324デフォルトの名無しさん
2011/03/01(火) 02:08:19.18床井さんのところのサンプルに、クォータニオン使ったやつがあったはず。
0325デフォルトの名無しさん
2011/03/01(火) 11:53:16.09> 座標系に統一する場合
専門用語の使い方がおかしいから誰も真意を理解できない。
座標系はA,B,カメラの3つだと思う。
変換行列とはある座標系(X)からある座標系(Y)に変換するもの。
その逆行列なら(Y)から(X)へ変換する。あとは自分で考えろ。
0326デフォルトの名無しさん
2011/03/03(木) 18:07:25.06#iclude <GLES/gl.h> でOpenGL ESを読み込んだ時で処理を変えたいのですが、
必ず定義されている #ifdef で使える文字列とかあったら教えてください。
0327デフォルトの名無しさん
2011/03/03(木) 22:57:10.80それとも最初の内は見なかったことにして1.xの機能に絞って学んだ方がわかりやすい?
0328デフォルトの名無しさん
2011/03/03(木) 23:24:40.070329デフォルトの名無しさん
2011/03/04(金) 06:50:44.210330デフォルトの名無しさん
2011/03/04(金) 21:39:51.87opengl32.dllだけ?
glu.dllとかglu32.dllは手動だっけ?
0331デフォルトの名無しさん
2011/03/05(土) 19:00:47.69ソフトウェアレンダー?
0332デフォルトの名無しさん
2011/03/05(土) 20:25:13.610333デフォルトの名無しさん
2011/03/06(日) 02:04:51.78OpenGLの文字が荒ぶるスクリーンセイバーってNT系だけでしたっけ
>>332
なるほどどうもです
0334デフォルトの名無しさん
2011/03/06(日) 02:37:24.97左手座標系なら左手でフレミングの法則の手を作りながら
イメージ沸かして右手でコーディングできるのに
右手座標系ではそれが出来ない!非常に残念です。
あと右手座標系はZ軸が自分に向かう方が大きい値なのが許せない
観測者視点になっていなくて気持ち悪い。
どんな経緯で右手座標系に決めちゃったんでしょうか。詳しい方います?
0335デフォルトの名無しさん
2011/03/06(日) 02:59:05.870336デフォルトの名無しさん
2011/03/06(日) 03:00:08.38変換行列で最後に座標系を反転するようにして辻褄合わせとけば問題ないはず
経緯は知りません
0337デフォルトの名無しさん
2011/03/06(日) 03:22:01.36>JavaScriptから --> ???
JavaScriptから --> WebGL
丁度 WebGL 1.0 のリリースが発表されましたが、Firefox 4.0, Chrome 9,
Safari nightly, Opera preview をインストールすれば直ぐ使えてラクチンです。
これから OpenGL を勉強したい人も、ブラウザで簡単に試せるので良いかも。
お勉強サイトは↓ここがお勧め。
http://learningwebgl.com/blog/?page_id=1217
説明が丁寧なので、JavaScript, WebGL, OpenGL, 三角関数、シェーダー、
全てに於いて初心者に毛が生えた程度の自分でも楽しく理解出来ました。
0338デフォルトの名無しさん
2011/03/06(日) 11:39:00.90殆どの物理や数学の本だと右手座標系だったと思うので
その習慣がそのままOpenGLに採用されただけじゃない?
射影行列のどっかを変えれば左手系になる。
そういえばWebCLというのも出てくるらしいが・・・
0339デフォルトの名無しさん
2011/03/06(日) 11:46:30.42> そういえばWebCLというのも出てくるらしいが・・・
ちょ・・・ マジで?
0340デフォルトの名無しさん
2011/03/06(日) 13:02:50.01>イメージ沸かして右手でコーディングできるのに
かわいい
0341デフォルトの名無しさん
2011/03/06(日) 13:31:38.89えっと、えっと。。。OpenGLは右手座標系だから。。。
ってコーディングしてるんだぜ。
そりゃ、かわいいだろ。
0342デフォルトの名無しさん
2011/03/06(日) 13:52:02.07マジだよ
策定完了まではWebGLのように今から2年以上掛かるだろうって言われてるけど
http://www.conceivablytech.com/5978/products/webcl-to-enablegpu-accelerated-web-apps
0343デフォルトの名無しさん
2011/03/06(日) 14:10:34.25美少女の、モデル表示しながら、
えっと、えっと。。。OpenGLは右手座標系だから。。。
ってコーディングしてるんだぜ。
そりゃ、かわいいだろ。
こうだろ?
0344デフォルトの名無しさん
2011/03/06(日) 15:09:40.78うたがって悪かった。
いやー、しかし、時代はそんな方向を向いているのか。
びっくりした。
0345デフォルトの名無しさん
2011/03/06(日) 15:12:38.570346デフォルトの名無しさん
2011/03/06(日) 15:51:41.540347デフォルトの名無しさん
2011/03/07(月) 11:14:56.350348デフォルトの名無しさん
2011/03/07(月) 16:30:09.530349デフォルトの名無しさん
2011/03/07(月) 20:59:43.160350デフォルトの名無しさん
2011/03/08(火) 04:31:15.05あと、中指x、人差し指y、親指zとすれば、左手でも右手系は考えられるぞw
0351デフォルトの名無しさん
2011/03/11(金) 06:32:26.54Right Top Far Coordinate、略してRTFCとかのほうが分かりやすいと思うんだが。
0352デフォルトの名無しさん
2011/03/11(金) 07:27:20.17Z方向を地面からの高さ(上)と捉えて、
右をX、手前をYとする左手座標系を考えるときもある
同じく高さ方向をZと捉えて、
奥をYとする右手座標系も考えるときもある
何を右とし、何を上とするかなどは一概に言えないから、
Right Top Far Coordinate の方が分りにくいよ
0353352
2011/03/11(金) 07:32:53.28なんかあんまり良い反論の仕方じゃなかった
私は RTFC は直感的に分りにくかったことを伝えたかったんだが、
ごめん、忘れてくれ
0354デフォルトの名無しさん
2011/03/17(木) 20:41:44.10多分ないと思うのですが、ないとうのが信じられません。
0355352
2011/03/17(木) 20:52:33.990356354
2011/03/17(木) 21:06:56.94ものすごい勢いでスパムしか流れてないのと、
参加するのにオーナー承認が必要にもかかわらず
ずっと(多分オーナーが管理を放棄していて)承認されません。
0357デフォルトの名無しさん
2011/03/17(木) 21:53:28.87そうか
じゃあ無いな
0358デフォルトの名無しさん
2011/03/18(金) 09:35:27.190359354
2011/03/18(金) 11:08:17.672ch掲示板だけだとまずいだろう
0360デフォルトの名無しさん
2011/03/18(金) 11:25:10.340361デフォルトの名無しさん
2011/03/18(金) 11:47:48.100362デフォルトの名無しさん
2011/03/18(金) 12:20:37.07まあ2chはしょっちゅう規制するのが困るが
0363デフォルトの名無しさん
2011/03/18(金) 18:16:56.46でもオワコン好きなのでこれからはじめようと思う。
まずは立方体を動かしたりカメラ動かしたりとかやります。
どうもよろしくおねがいします。
0364デフォルトの名無しさん
2011/03/18(金) 19:32:38.910365デフォルトの名無しさん
2011/03/18(金) 21:52:30.020366デフォルトの名無しさん
2011/03/18(金) 22:04:24.240367デフォルトの名無しさん
2011/03/18(金) 22:09:37.91いい加減レガシーな仕様を作り直して欲しいが。
0368デフォルトの名無しさん
2011/03/18(金) 23:12:16.39D3Dに似た別の何かは360でも使ってるが。
OpenGL使ってるのは
PS3/PSP
Wii/DS
iphone/Mac
Linux
その他組み込み
OpenGLのほうが勢力は上だ
0369デフォルトの名無しさん
2011/03/18(金) 23:44:19.340370デフォルトの名無しさん
2011/03/19(土) 11:46:53.81俺はよく知らないけど、↓の記事見るとハードウェアでのジオメトリインスタンシングには
glDrawElementsInstancedARB を使うって書いてあるよ(擬似インスタンシングという技法もnVidiaの白書で紹介されてるとか)
http://www.geeks3d.com/20100629/test-opengl-geometry-instancing-geforce-gtx-480-vs-radeon-hd-5870/
0371デフォルトの名無しさん
2011/03/19(土) 14:46:31.15自分の環境: Microsoft Windows XP SP3、Microsoft Visual C++ 2005
見つかったウイルス:
imageanalyzer.exe (Suspicious.Cloud.5)
%QTDIR%\examples\webkit\imageanalyzer\release\imageanalyzer.exe
脅威の種類: ヒューリスティックウイルス検出。マルウェアヒューリスティックに基づく脅威の検出。
ノートンの処理: imageanalyzer.exe を削除
これって必要なんですか?
0372デフォルトの名無しさん
2011/03/19(土) 14:47:21.55誤爆
0373デフォルトの名無しさん
2011/03/20(日) 09:33:42.02ソフトウェア開発者はなかなか移行しないし
そうなるとハイリスクだからGPUベンダーも実装しない
かといってプロファイルにすればいいかというと
設計が見直されれば見直されるほど
GPUベンダーはOpenGLという名を持つ複数のAPIを
サポートするような状態になる気がするんだが
0374デフォルトの名無しさん
2011/03/20(日) 10:48:28.110375デフォルトの名無しさん
2011/03/20(日) 11:27:30.41ハゲ同
よし俺達で別のAPIを作ろうぜ
0376デフォルトの名無しさん
2011/03/20(日) 17:35:54.550377デフォルトの名無しさん
2011/03/20(日) 17:57:13.68ワールド→スクリーン変換をglProjection と glLookat でやってるなら
まずそれを自前で作ってから逆行列にするとスクリーン→ワールド変換できるとおも
まあ面倒だよね
0378デフォルトの名無しさん
2011/03/20(日) 18:03:20.160379デフォルトの名無しさん
2011/03/20(日) 18:42:39.58gluProjectでいけたサンクス。
ローカル座標でも実装できた。
0380デフォルトの名無しさん
2011/03/20(日) 23:07:35.81ネタなのを承知で言うがそれはもっとない
RSS 1.0とRSS 2.0とAtomの件や世の中にいくつ存在するか分からないGUIツールキットでも分かるけど
いくら既存の問題点を解決するとしても新しい設計の競合は選択肢が増えるだけに終わることが多い
初めからできるだけ正しくやれたら一番いいんだけどな
0381デフォルトの名無しさん
2011/03/20(日) 23:28:40.04何もかもグローバルだと分かったときOpenGLの設計者は頭おかしいんだと思った
0382デフォルトの名無しさん
2011/03/20(日) 23:43:39.60C言語での利便性やらを考えたら、副作用地獄のあの形になるのは理解できるが。
C++クラスを使いまくってAPIを一新したら、色々美味しくなるんじゃないのかねぇ、とは思うわ。
0383デフォルトの名無しさん
2011/03/20(日) 23:58:36.59現PCと同じくらいの性能になったらGLも一新されそうだな
0384デフォルトの名無しさん
2011/03/21(月) 00:01:57.52OpenGL ESなんてやめようぜ。誰が得するんだ
0385デフォルトの名無しさん
2011/03/21(月) 00:17:46.72既存の API に対する使いやすいラッパーを考えた方がいいと思うぜ
そういえば昔、同じような話をここで見た記憶があるわね
0386デフォルトの名無しさん
2011/03/21(月) 00:43:40.260387デフォルトの名無しさん
2011/03/22(火) 18:44:32.30パーサがミスってるのか頂点配列構造体のアラインメントのせいなのか・・
0388デフォルトの名無しさん
2011/03/22(火) 19:01:49.90(´・ω・) 知らんがな
ノ^ y丶
ヽ_ノ==|ノ
/ ||
"""~""""""~"""~"""~"
0389デフォルトの名無しさん
2011/03/22(火) 20:15:08.26じゃあうちの話聞いてよ
GLUT使ったアプリの閉じるボタンでウインドウ閉じたあと
しばらくしてPCの調子悪いなと思ってプロセス見たらプロセスが残ってて
1.5GBメモリリークしてるの!!!
GLUTの中でウィンドウ閉じる時にexit();ちゃんとできてないよどういうこと??
GUIはSDL使えっていうことなの?! やだーー!!
0390デフォルトの名無しさん
2011/03/23(水) 05:46:30.910391デフォルトの名無しさん
2011/03/24(木) 12:42:49.71https://groups.google.com/group/android-group-japan/browse_thread/thread/929c9700f4ec04ad?hl=ja
「カメラ座標」で回転を指定するにはどうすればいい?
例えば今見ているカメラの上方向(0,1,0)を軸にして90度回転させる場合の
glRotatef()はどう指定すればいい?
簡単な方法を思いつかない。
ちなみにメーリングリストの回答はひどい。
0392デフォルトの名無しさん
2011/03/24(木) 12:58:06.9990度回転してから、今のカメラの回転を適用すればいいじゃない。
どうしても今の角度から軸を割り出したいなら、(0,1,0)を今の行列で変換すれば上の軸がわかるだろ。
カメラだから最終的に逆になるのは考慮してな。
0393デフォルトの名無しさん
2011/03/30(水) 15:42:54.73static GLfloat *vertexBuffer = NULL;
unsigned int vertexCount = 0,
...(vertexBuffer,vertexCountの計算)...
GLuint vboID;
glGenBuffers(1, &vboID);
glBindBuffer(GL_ARRAY_BUFFER, vboID);
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * vertexCount * 2, vertexBuffer, GL_STATIC_DRAW);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, 0);
glBindTexture(GL_TEXTURE_2D, brushTexture);
glDrawArrays(GL_POINTS, 0, vertexCount);
上記コードで描画したものを削除して画面から消したいのですが、方法が分かりません。よろしければ教えていただけないでしょうか?
0394デフォルトの名無しさん
2011/03/30(水) 15:49:19.190395デフォルトの名無しさん
2011/03/30(水) 16:19:50.04glClearだと複数描画した場合にすべて消すことになると思いますが、
最後のひとつだけ消す方法はありますでしょうか?
つまりUndoをしたいということなのですが。
0396デフォルトの名無しさん
2011/03/30(水) 16:36:23.12もしくは
すべて消して最初から描き直す
0397393
2011/03/30(水) 16:39:26.66なるほど。やってみます。ありがとうございました。
0398デフォルトの名無しさん
2011/04/01(金) 03:11:52.85何処かで見たなような…と思ったら
案の定、昔のRADEONのデモの流用なんだね
http://www.spec.org/gwpg/images/MayatoyStore_lg.gif
http://www.4gamer.net/news/image/2005.10/20051006024149_4big.html
http://www.spec.org/gwpg/gpc.static/vp11info.html
http://www.4gamer.net/news/history/2005.10/20051006024149detail.html
MAYAのページの狼男?もGeForce4のデモのモデルの流用みたいだし
http://www.spec.org/gwpg/images/maya3-wolves.jpg
http://game.watch.impress.co.jp/docs/20020212/ge02.htm
http://game.watch.impress.co.jp/docs/20020212/ge03.htm
http://game.watch.impress.co.jp/docs/20020212/ge04.htm
http://www.spec.org/gwpg/gpc.static/maya03.html
http://game.watch.impress.co.jp/docs/20020212/nvidia2.htm
0399デフォルトの名無しさん
2011/04/02(土) 00:24:50.44今までglDrawArrays(GL_TRIANGLE_STRIP..)で描画していたデータがあります
esの本にいろんな理由でglDrawElements()のが早いというのを
勉強がてらやってみたがテクスチャがおかしく表示されてうまくいかず・・
ユニークUVだった場合、glDrawElements()の方はテクスチャの配列って
どうやって設定しておけばいいのでしょうか?
ちなみにデータはXSIからモデル情報を書き出すプラグインでやっていて、
どういう状態にしておけばいいかが分かればありがたいです
無理なのかな
0400デフォルトの名無しさん
2011/04/02(土) 00:49:45.690401399
2011/04/02(土) 13:05:53.44一応テストで使ってる実例だと※↓()は無視で
・頂点[(0,5,0),(0,0,0),(5,5,0),(5,0,0)]
・UV[(0,0),(0.2,0.7),(1,1),(1,0),(0.5,0.7),(0.2,0.4)]
・index[3,2,1,0,1,2]
をglDrawElements()のGL_TRIANGLESで描画するとおかしくなる
UV用のindex設定する方法とかでもあるって事かな
一応 UVindex[3,2,0,1,5,4] も用意してるんだけど、
なんか実例があるサイトがあれば是非教えてください
0402デフォルトの名無しさん
2011/04/02(土) 13:17:32.68インデックスは頂点とUVの両方に対する共通のインデックス (もしカラー配列や法線配列があれば、それも)
各配列それぞれから N 番目を取ってきてひとまとまりの頂点データになる
例えば GL_TRIANGLES でインデックスが 3,2,1 なら
・3 番目の頂点と 3 番目のUV
・2 番目の頂点と 2 番目のUV
・1 番目の頂点と 1 番目のUV
を使って三角形が作られる
0403デフォルトの名無しさん
2011/04/02(土) 13:22:13.800404399
2011/04/02(土) 14:21:05.75なるほど、いま色々テストしていたけどそうみたいですね
じゃあやっぱりメッシュの頂点は共有しているけど
UVの座標は別々になっているようなデータの場合は
glDrawElements()は適してないって事かな?
おとなしくglDrawArrays()でやろっかな、なんかくやしいな
0405デフォルトの名無しさん
2011/04/02(土) 14:29:32.65頂点数が多い滑らかなメッシュで座標が共有できてUVが共有できないケースはあんまりないと思う
0407デフォルトの名無しさん
2011/04/03(日) 10:50:50.95忍法帖は名前欄に
!ninja
とすれば出てくる。
って最近知った。どれどれ
●だか買うと最終書き込みから5分経過すればレベルが一つ上がるらしい。
そうじゃない人は24時間経過すればレベルが一つ上がるらしい。
あと、cookieの設定がうまくいってないとレベルが上がらないらしいから、
何日たってもレベル0,1の場合はHap cookieの設定をチェックだ。
レベル10以上になると
Lv=NN,xxxP『T』
ってなってスレ立てできるようになるらしい。
0409デフォルトの名無しさん
2011/04/04(月) 21:19:27.210410デフォルトの名無しさん
2011/04/04(月) 21:23:19.720411デフォルトの名無しさん
2011/04/04(月) 21:41:26.08どこみてもARBが何か書いてないんで、謎の色空間指定だったらどうしようと悩んでたんだぜ。
0412デフォルトの名無しさん
2011/04/04(月) 22:21:03.950413デフォルトの名無しさん
2011/04/04(月) 22:32:30.63何を勘違いしてるのか知らないけど、Googleで「OpenGL」って検索して
一番目に出てくるWikipediaのOpenGLの項目を開いて歴史の項目を読めよ・・・
>>412が言うように検索すればどこにでも書いてる
0414デフォルトの名無しさん
2011/04/05(火) 01:42:30.95定数名に開発委員会名みたいのが入ってるとは思わなんだだよ。
0415デフォルトの名無しさん
2011/04/05(火) 03:27:00.69>>410が何の略称かも書いてるのになにが「どこみてもARBが何か書いてない」だよw
0416デフォルトの名無しさん
2011/04/05(火) 09:40:43.71http://www.youtube.com/watch?v=uoncHfnYWHM&feature=player_embedded
http://www.youtube.com/watch?v=4XZC76lQ2hc&feature=related
初音ミクとかのモデルや、ライデンレーザーは置いといて、この動画に出てくる
緑色のホログラム的な文字や円、矢印はOpenGLで描画しているのでしょうか?
OpenGLでやっているのであればGLUT使ってるんですかね?
もし、OpenGLで描画しているのであれば>>1の必読書としてはどれがお勧めになってくるでしょうか?
環境としては
VS2008でVGAがHD5450使っています
0417デフォルトの名無しさん
2011/04/05(火) 10:50:57.13GLUTかどうかとかそういうのは関係ないと思う。FBOとか使って描画結果をα値ありで取得、合成してるだけだろう。
特に読むべき本とかは無いと思う。
0418デフォルトの名無しさん
2011/04/05(火) 11:12:28.88オレはARToolKitを使ったことがないので、詳しい人のレスが付けば無視してくれて良い。
たぶん、OpenGLを使っており、GLUTは使っていない。
まず、ニコニコ百科事典にARToolKitの「オブジェクトの配置にはOpenGLの基本的な知識が必要」って書いてある。
http://dic.nicovideo.jp/a/artoolkit
ARToolKitのページを見ても、OpenGLの上に構築したようなライブラリに見える。
http://www.hitl.washington.edu/artoolkit/documentation/devstartup.htm
次に、GLUTについては、同じページでargMainLoopという独自のメインループ用関数を使っているので、同時に使えないか、使えても面倒くさいだろう。
本はどれでも良いんじゃない?
GLUTを使おうと使うまいと、オブジェクトの配置とかの超基本的な部分は同じ。
でも、右も左も分からない状態からはじめるなら、素直にARToolKitの本を読めばよいのでは。
http://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Dstripbooks&field-keywords=ARToolKit&x=0&y=0
0419デフォルトの名無しさん
2011/04/05(火) 11:30:53.59レスthx
>>417
FBOって何でしょう?ググっても、航空機とかが出てきたのですが…
>>418
一応AR勉強用に、
3Dキャラクターが現実世界に誕生! ARToolKit拡張現実感プログラミング入門は手元にあるのですが、
マーカー関連、モデルの描画方法に関しては上記本で解決出来ました。
OpenGL関数?を使ってglutWireCubeや、glutSolidTeapot等も書いて有り、実際に実行したのですが
URLにある、ホログラム?的な映像はどうやってやるのかなー・・・と
綺麗に出ているので、カッコイイですし、リアルタイムに文字が変わるのも凄いですよね。
モデルにしては、あのように沢山の連番mqoを用意するのは難しいでしょうから、
OpenGLでやっているのかな?と思い、聞きました。
OpenGLでああいった処理をするなら、どういった予約語とか使えばいいかも分からないので
お勧めの本があったら紹介してほしいなと
OpenGLに関しては右も左も分からない状態です。
0420デフォルトの名無しさん
2011/04/05(火) 11:55:06.080421デフォルトの名無しさん
2011/04/05(火) 13:32:54.71そかー、了解
取り敢えず 手抜きOpenGL見て勉強してみます。
文字はどうかは分からないけど、線描画位はできそうだ
0422デフォルトの名無しさん
2011/04/05(火) 13:43:37.28べつに特別なことは何もしてないと思うよこれ。ホログラムホログラム言ってるけどどれのこと?
ただポリゴンにαもたせたテクスチャ貼って表示するだけでこういうのできるけど。
数字が表示されてるポリゴンはFBOでもつかってんじゃね。(FBOはFramebuffer Objectのこと)
OpenGLやDirextXがサッパリわかんねーって状態でいきなりこういうのは無理。
よく動画で「xx作ってみた」みたいに軽く書いてるけどああいう人達はもともとプログラミングができるか、
1からとっかかったけど相当頭よくですぐできちゃった人。
OpenGL自体が判らないのなら手抜きOpenGLのページで判るまで勉強すればいい。
0423デフォルトの名無しさん
2011/04/05(火) 14:08:56.83なるほど、thx
ポリゴンにα持たせて出来るのは、自分で確認は出来てるんだけどそれを踏まえて
リアルタイムに細かく描画内容を変更出来てる(例えば、メーター的なゲージとかは出来ないよな〜と
※出来たとしても相当量のモデルが必要になる
ホログラムじゃないのは分かるんだけど、パッと見アニメ世界でいうあんな感じに見えるから
ホログラム?的と表現してみた。それ以外になんとよべばいいか
動画でいえば、複数マーカーの方なら
ANGLEって浮き出てる奴や、周囲の円マーク(回し具合によって形変わる)や
距離の奴なら、測定中[数字]とかかな、透過緑で表示されてる全般
FBOthx、おかしいなググッたときはでなかったのに、OpenGL FBOでぐぐったら普通にでるね…すまない
手抜きOpenGLとFBO見てみるよ、有難う
0424デフォルトの名無しさん
2011/04/05(火) 14:25:38.04プログラムでその場で計算してモデルを組み立てたって全然構わない
頂点の座標やインデックスを配列に入れて描画させるだけだし
0425デフォルトの名無しさん
2011/04/05(火) 20:48:07.26どっかの博士(日本人)が作ったもの。
研究用の3DはOpenGLが基本。
ホログラムって言ってるのは
ポリゴンを加算で表示しているだけ。
特に難しいことはやっていない。
FBOも関係ない。
モデルが出せるなら
ホログラムもすぐ出来る。
OpenGL1.1レベルの内容かな。
0426デフォルトの名無しさん
2011/04/07(木) 17:28:05.77並べられた直方体を滑らかにうねらせる程度の基礎的なプログラムは書けたのですが、次にパーサーを作成しようとして難儀しています。
元々はMikoto形式のパーサーを作成する予定でした(いくつかその形式の素材が手元にあるため)が、作者のページが閉鎖されてしまっており、
ファイルフォーマットの仕様がまるで分からず立ち尽くしております。
・多くのモデリングツールでサポートされている
・プログラム上扱いやすい
・ファイルフォーマットの仕様詳細が公開されている
このようなボーン情報、重みを格納できるフォーマットはないでしょうか
0427デフォルトの名無しさん
2011/04/07(木) 19:06:24.68独自フォーマット作ってそれのパーサつくって終わり。
できないならおとなしくxファイルでも使う。
あとその話題GL関係ないよね。スレチ。
0428デフォルトの名無しさん
2011/04/07(木) 19:46:38.46レスありがとうございました。
自由な独自フォーマットでの書き出しなら作れと言われれば作りますが・・・
必要なのは、私とは別の方が作成なさった素材を読み込むことなのです。
流石に独自フォーマットを扱えるモデリングツールを用意・普及させる力は到底ありませんので、
直接扱うにせよ、一度独自フォーマットへ変換してから扱うにせよ、どちらにせよ
一般的なモデリングツールで編集可能なフォーマットのパーサーが必要でして・・・
それにあたって、どのフォーマットを選択すべきかと言う質問でした
スレ違い申し訳ありません
0429デフォルトの名無しさん
2011/04/07(木) 19:54:27.64スレチ言っといて引っ張るのもアレなんだけど気になるので。
>必要なのは、私とは別の方が作成なさった素材を読み込むこと
っていうのは例えばblenderやらXSIやらで誰かが作ったファイルを読みたいわけだよね。
>流石に独自フォーマットを扱えるモデリングツールを用意・普及させる力は到底ありませんので
いやだから、上の他の人が作ったファイルを独自形式に変換するパーサー書けばいいじゃない。
>一般的なモデリングツールで編集可能なフォーマットのパーサーが必要でして
ちょっとイミフ。一般的といわれてもモデラなんてたくさんあるしそれぞれフォーマット違うし。
相手が出してくるフォーマットが固定ならそれから独自形式に変換すればいいんでない?
モデラー→パーサーで独自形式→プログラムで>>428が使う。この流れじゃだめなの?
何が問題なのかちょっとワカンネ。
0430デフォルトの名無しさん
2011/04/07(木) 20:09:39.56レスありがとうございます
「モデラー→パーサー→独自形式→使用」
まさにこの方法で良いのですが、仰る通り世の中で用いられているモデリングツールと
その各々の独自形式の種類が多すぎて、どのパーサーを作るべきか分からないのです。
元々準備していたMikoto形式は作者様の仕様公開終了により潰えてしまい、途方に暮れております。
そこで、仕様がよく公開されていて、ある程度よく用いられているフォーマットが知りたかったのです
0431デフォルトの名無しさん
2011/04/07(木) 20:15:02.67・なるべく多くの3Dモデラのデータ(ボーン付き)を読み込みたい
・なるべく多くの資料があるフォーマットが良い
ってことじゃないの?
たぶん、Miku Miku Danceクローンみたいなものを作りたいんじゃないかな?
もしもMMDクローンが作りたいのなら素直にPMDを読み込むようにすれば良い。
そうでなくても、
・事実上勝手に使っても誰も文句いわなさそうなモデルがいっぱい転がっている
・インターネットで「作ってみた」でウケそうなのでモチベーションが維持しやすい
ということで、PMDが候補として良さそうな気がする。
この辺を見てみるよろし:
http://www6.atwiki.jp/vpvpwiki/pages/220.html#id_327804fb
0432デフォルトの名無しさん
2011/04/07(木) 20:28:15.62ありがとうございます。
説明が下手で申し訳ありません。聞きたかったことはまさにその二点です。
昔作ったアクションゲームに物理エンジン組み込んで遊んでいるうちにボーンアニメも実装したくなりまして…
PMDについて勉強を進めてみます。
0433デフォルトの名無しさん
2011/04/07(木) 20:29:33.51↑のサンプルでPBOの使い方みてるんだけど、描画のたびに
�@glBufferDataARB()でPBOの領域確保して
�AglMapBufferARB()でPBOをマップして書き換え
�BglTexSubImage2D()でテクスチャの中身をPBOに書き換える
ってことやってるんだけど、こういうものなの?
実際はダブルバッファなんで細かな動作はちょっと違うんだけど、
glBufferDataARB()で確保したPBO領域は、glTexSubImage2D()で
テクスチャに張り付けた後に自動で解放されるってことなのか?
0434デフォルトの名無しさん
2011/04/07(木) 21:09:38.38サイズが同じならglBufferDataは一回呼んでおけば十分
そこのサンプルがglBufferDataを毎度呼んでる理由はわからんが
0435デフォルトの名無しさん
2011/04/07(木) 21:49:59.12俺の読解力が足りなかった。申し訳ない
>>432
パーサーは形式で作り直さなきゃいけないのは諦めるしかないね。
PMDは流行ってるけどメジャーではないからとりあえずPMDと、他に多い
(気がするのは)LigthWaveとかMAXかな。
とりあえず「これでやっていこう!」って決めたらそれつかったらいいと思うw
0436デフォルトの名無しさん
2011/04/08(金) 00:32:23.820437デフォルトの名無しさん
2011/04/08(金) 02:15:43.56形式を勉強したって意味ないよ。こんなの扱ってるのは狭い世界だけの話。
作者が辞めたらそれで終わりだしな。
今すぐならXファイル、将来性も含めれば.FBX、.COLLADA、.blend
このあたりだけ扱えればアニメーションはオッケーだ。
あ、アニメ無しの静的モデルだけならなんでもいいよ。アニメ付きに比べれば超簡単、単純だシナ。
0438デフォルトの名無しさん
2011/04/08(金) 03:56:16.07PMDとかMikotoはマイナーだけどそれを選んじゃいけないなんて決まりはないけどな。
たかだか個人の作るモンにファイルフォーマットの将来性だのなんだのアホかと思うけどね。
ファイル解析と独自形式のパーサなんてすぐできるんだし、独自形式への変換やデータの
扱いを勉強するならフォーマットなんざなんでもいい。
0439デフォルトの名無しさん
2011/04/08(金) 05:07:18.53モーション付きの3Dモデルなんて、探してもほとんど転がってない
たまにあっても形式や方便がバラバラで、それぞれのローダを作るだけで日が暮れそうだ
ニコ厨御用達のMMDは、素材が豊富とはいえプロの界隈では全く汎用性がないし
どうしたもんかね
0440デフォルトの名無しさん
2011/04/08(金) 08:02:28.71デザイナーが使うソフトを軸に考えればいいんじゃね
遊びで作ってるならプロ界隈の汎用性なんてほっといて素材からのパスが簡単な形式を選べばいい
0441デフォルトの名無しさん
2011/04/08(金) 12:58:16.48いい加減誰か統一書式作ってくれよ・・・そんな独自形式なんて中学生でも作れるもので個性主張しなくて良いから
0442デフォルトの名無しさん
2011/04/08(金) 13:17:40.590443デフォルトの名無しさん
2011/04/08(金) 13:23:35.23何を解釈して個性主張になったの?wwwwwwwwwwwwwwwwwwwwwww
0444デフォルトの名無しさん
2011/04/08(金) 13:51:09.06構造体の中身そのまんまファイル出力するだけで独自フォーマット(笑)
だとか言い出す奴は流石に笑うしかないな 入門本レベルだわな
ただただ汎用性を損なうだけで、他の書式覚えて書き出すの挫折しただけだろと
0445デフォルトの名無しさん
2011/04/08(金) 14:04:10.82〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ こいつ最高にアホ
彡、 |∪| /
/ __ ヽノ /
(___) /
0446デフォルトの名無しさん
2011/04/08(金) 20:12:00.870447デフォルトの名無しさん
2011/04/08(金) 20:21:16.52モーションについてはKinectが未来を切り開いてくれるかもしれない。
プログラマでもモーションを作りえる環境ができそうだ。
0448デフォルトの名無しさん
2011/04/08(金) 21:57:17.630449デフォルトの名無しさん
2011/04/08(金) 22:49:10.480450デフォルトの名無しさん
2011/04/09(土) 00:58:00.90問題は仕様書がバグだらけなだけ
0451デフォルトの名無しさん
2011/04/09(土) 12:25:16.12仕様はJavaの標準化コミュニティで完璧に定義されていて公開されている。
自分で作らなくても俺の作ったパーサーがフリーで公開中。
日本人開発者(=俺)がいるのもメリットだと思う。
今M3Gの描画エンジンをAndoridに移植していてNDKでは動いた。
Javaから使えるバインダーも作っていて現在実装中。
0452デフォルトの名無しさん
2011/04/10(日) 08:38:14.68まあ公開され安定した仕様があって、必要な機能があるならME由来だろうがなんだろうが別に良いけど
JSR読んで決める
0453デフォルトの名無しさん
2011/04/11(月) 14:18:52.11確かに。
構造体をそのまま書きだすと、ファイルに構造体アライメントのpadding!(ゴミ)が入り汎用性を失う。
おまえよく知ってるな。
>>449
吹いたwwwww
やぱり3Dモデルのファイルフォーマットに決定版は無いのか・・・。
たぶんそれぞれ独自の拡張をしたりとか
表示するソフト側でいろいろやるため柔軟にするんためだろうけど、
普通にモデルの表示がOpenGLでできればいいと思ってた自分には
パーサとか、頂点やら法線やらテクスチャの部分まで自分で一から書くのも納得いかなんだ
そういう人はまずどうすればいいか教えてください!m(_ _)m
0454伝説のスーパーハッカー ◆sREcGA5zDk
2011/04/11(月) 15:20:19.690455デフォルトの名無しさん
2011/04/11(月) 15:30:11.72自分で作るのが嫌なら誰かに作ってもらえばいいのです
まずお金をいっぱい用意してください
0456デフォルトの名無しさん
2011/04/11(月) 15:34:31.83fbxやCOLLADAとかあるよ。
0457デフォルトの名無しさん
2011/04/11(月) 15:47:46.59FBXとか仕様書を何回読み直しても理解できない。
0458デフォルトの名無しさん
2011/04/11(月) 18:07:14.07遅すぎて自作ソフトで使うのはやめた
0459453
2011/04/11(月) 18:11:54.77意匠権名ググりましたが両方ともいまいちOpenGLで表示する方法はわかりませんでした。
お金をいっぱい用意する事を検討してみます。
0460デフォルトの名無しさん
2011/04/11(月) 21:43:17.06>パーサとか、頂点やら法線やらテクスチャの部分まで自分で一から書くのも納得いかなんだ
>いまいちOpenGLで表示する方法はわかりませんでした。
納得いかないんじゃなくて基本的なことが出来ないだけじゃんかよー
大人しくDirect3D9でxファイルでも読み込んでろよもー
0461デフォルトの名無しさん
2011/04/11(月) 21:53:39.83簡単に手を出せるものじゃない。
まともなアプリ出すまで1年かかる。
0462デフォルトの名無しさん
2011/04/11(月) 22:06:13.34スパナを渡されたでござる。
0463459
2011/04/11(月) 22:49:58.11全く経験も知識も無い素人でわからんのだが、それは基本的な事なのか?
素人の感覚で、「納得いかない」と言ったのは、モデリングソフトで表示できるモデルと
同じようにするのに、なぜその表示する機能の「コピー」を手でもう一つ書く作業が必要なのか
そんなの時間の無駄じゃん、納得がいかない!と言いたかった。
たぶん自分が大きな勘違いしてるのはわかるけど、やっぱりわからん。
なんで普通にモデルを表示するのに、皆それぞれそんな長い手順を踏む必要があるんだ?という質問。
別に「面倒だし適当にやらせろ」っていう文句じゃなくて。
まあ簡単に言えば「便利な既存ライブラリは無いの?」だし
「楽したいだけだろ!」と言われたらそれまでだが、
でもそれを1人ずつわざわざやる事は合理的なのか?
その調べが全くつかない
似たような質問してる人は他の場所にも大勢いるけど、
「できない」「自分で作れ」って解答ばかりでさっぱり・・・
この辺りが一般凡人に3Dのプログラミングが普及しない原因に見えて仕方ないんだが
それとも、OpenGL自体がそこを追及する分野なのか?
純粋に「3Dのゲーム作りたい!」とかいう人は既に場違いなの?
0464デフォルトの名無しさん
2011/04/11(月) 23:07:19.74もっと大きなミドルウェアとかを使った方がいいのではないか。
Unreal EngineとかUnityとか。
0465デフォルトの名無しさん
2011/04/11(月) 23:23:51.60OpenGLはエンジンを作る人が触るような低位のAPIだ
0466デフォルトの名無しさん
2011/04/11(月) 23:33:19.99>>462
0467デフォルトの名無しさん
2011/04/11(月) 23:50:30.61バイナリデータの取得ができて、テクスチャ付きの三角メッシュを表示して思うように動かせれば、OpenGLでのパーサを書くのはそんなに難しくない。
一般的に普及していないのは、ゲームができるほどのモーションが付いた3Dモデルデータが普通のプログラマには用意できないからだと思う。
アニメーションのない3Dなんか動かしてもモチベーション上がらんし。
0468463
2011/04/12(火) 00:06:33.62最初から思いきり勘違いしてた。
どうやらエンジンを使う方が自分には正解だったようです。
みんな誘導乙でした、thxです。
これでやっとドライブができるでござる
0469デフォルトの名無しさん
2011/04/12(火) 00:13:08.69もともとOpenGLは研究室とかで3次元曲面をプロットするような用途で使うものだし
3次元空間に多角形表示できるからそれ利用すればモデリングデータ表示も出来るけど
そんなのは副次的なものだし
研究者の使うPC環境に左右されないように最低限のI/Fだけ備えて汎用的に作られてるし
別に数式を視覚化できればモデリングデータとか表示できなくていいし
ゲームとかに使いたい人間が望んでるものと畑が違うし
極論言うとOpenGLは数学物理好きが使うツールだし
でもその汎用性とオープン性からゲームに利用されるのも確かだけど本来ゲーム向けじゃないし
OpenGLと組み合わせて使うライブラリはいくつもあるけどDirectXほど簡単には行かないし
0470デフォルトの名無しさん
2011/04/12(火) 00:24:14.16ちょっと偏屈になりすぎていないかい?
そこまでガチガチのもんでもないと思うぜ。
自分で自分を縛るのはもったいねぇ。
>>468
一応こういう事例もあるぜ。
ttp://game.watch.impress.co.jp/docs/20061025/3dvf5.htm
0471デフォルトの名無しさん
2011/04/12(火) 00:51:17.72の言う事も違うと思うが。
DirectXから便利機能を取り除いてHardwareへのインターフェースだけにすると
機能的にはほぼOpenGLと同じになるしな。
OpenGLは3D hardwareへのインターフェースの共通規格のような物。
モデルデータを読み込むとかの便利機能はOpenGLの範囲外。
ゲームエンジンが3D HWへアクセスするときのインフラみたいなもんか。
詳しくはOpenGLの仕様書を読め
0472デフォルトの名無しさん
2011/04/12(火) 01:08:29.60本来とかもともととかはしらんけど、ゲームでOpenGLは使われまくりだよ
0473デフォルトの名無しさん
2011/04/12(火) 01:50:24.970474デフォルトの名無しさん
2011/04/12(火) 01:52:42.450475デフォルトの名無しさん
2011/04/12(火) 01:56:36.17WebGLも来るぜを。
0476デフォルトの名無しさん
2011/04/12(火) 02:00:07.930477デフォルトの名無しさん
2011/04/12(火) 02:02:11.470478デフォルトの名無しさん
2011/04/12(火) 04:20:37.570479デフォルトの名無しさん
2011/04/12(火) 09:50:23.370480デフォルトの名無しさん
2011/04/12(火) 10:35:46.81別にOpenGLが理想なわけじゃない
0481デフォルトの名無しさん
2011/04/12(火) 12:53:56.810482デフォルトの名無しさん
2011/04/12(火) 16:00:20.37有料だしバージョン少し古いかもしれんがw
0483デフォルトの名無しさん
2011/04/12(火) 21:33:32.75OpenGLはさすがに設計が古すぎる・・
0484デフォルトの名無しさん
2011/04/12(火) 22:23:41.17モデルの影の色を指定したい場合どうすればいいでしょうか。
例えば肌は普通に光源を設定すると影が黒くなってポップなモデルには似合いません
肌の影は濃いオレンジ色にしたいと思っています
かといってアンビエントを赤っぽく設定すると影じゃない部分も赤っぽくなって赤鬼みたいで変です
光源と対角の位置に赤い光源を置くと肌以外の部分にも赤い光が当たってこれもだめ
通常どんな方法で対応するんでしょうか
↓こんな感じの表示をしたいです
http://www.teatime.ne.jp/infor/lovedeath/char/ch_ay.jpg
0485デフォルトの名無しさん
2011/04/12(火) 22:30:56.80>>373あたりからのレス曰く
なんだかそれはもう無理らしいよ
>>484
アンビエントに濃いオレンジ色を設定すればいいんじゃ
0486デフォルトの名無しさん
2011/04/12(火) 22:31:38.46肌とそれ以外で分ける。
0487デフォルトの名無しさん
2011/04/12(火) 22:39:24.510488デフォルトの名無しさん
2011/04/12(火) 22:44:54.08メタセコ?肌の材質の「周囲光(環境光)」を上げてみては
0489デフォルトの名無しさん
2011/04/12(火) 22:55:48.55固定シェーダーね。
呼称はマテリアルだったか。スマン
0490デフォルトの名無しさん
2011/04/12(火) 23:01:11.35拾い物のobj(mtl)ファイルをテキストエディタでいじってます
マテリアルのアンビエント色をオレンジに書き換えても光源があたらない影の部分は
黒くなってしまってさっきみたいな絵になりません(光源色+マテリアル色〜黒のグラデになる)
昔六角大王をいじってた時はポリゴン毎に光のあたる強さに応じてグラデを指定できたんだけど
openglでそういうことって出来るんでしょうか
>>485
光源/マテリアルどちらのアンビエントを設定してもシェイド部分は黒になってしまいます
なので光源の逆側から影用の光源を当てればいいと思ったんだけど
そうするとその影色を適用したくないマテリアルにも光が当たってしまって・・・
0491デフォルトの名無しさん
2011/04/12(火) 23:08:19.02光と材質の色のかけ算だから、
片方のアンビエントが0,0,0(黒)だと必ず黒になるよ。
肌には肌色を設定して、光源は白色(というかアンビエントなので灰色とか暗めが普通)でいいと思う
0492デフォルトの名無しさん
2011/04/12(火) 23:22:31.76今は光源のアンビエントは(0.2, 0.2, 0.2)で指定しています。
これだと影が黒(灰色ですね)になっていて肌色の影としてはくすんでてヤだなあと
でも(0.4, 0.2, 0.3)みたいにオレンジっぽくすると今度は夕焼けにあたってるみたいに全体がオレンジに。
局所的にこれが出来ればいいんですけどやっぱないのかな・・
で、局所的にといえばマテリアル毎のアンビエントになるわけだけれど
シェイド部分は光源のアンビエントの影響を受けて局所的に指定ができないというハマリパターンになって泣きそうです
0493デフォルトの名無しさん
2011/04/12(火) 23:28:44.97GLSLをつかってトゥーン・レンダリングするとか、そういう話ではなくって?
個人サイトのURIを勝手に貼るが
http://www.arakin.dyndns.org/glsl_cartoon.php
0494デフォルトの名無しさん
2011/04/12(火) 23:31:00.38まさか綾乃さんをこのスレでみるとは・・・
確かうろ覚えだがソレは少なくともPixel Shader1.1を使ってるからGLSLが使える
OpenGL2.0以降のバージョンじゃないと完全な再現は無理かもな
0495デフォルトの名無しさん
2011/04/12(火) 23:34:06.76ライトにもマテリアルにも
アンビエントはあるぞ?そこは大丈夫か?
両方に値を入れてやらにゃならん。
0496デフォルトの名無しさん
2011/04/12(火) 23:34:07.69できるって。
光源のアンビエントは(0.2, 0.2, 0.2)でいい。
材質にもあるでしょ?それを灰色でなくオレンジに。
トゥーン・レンダリングは考えてないと思われる。
0497デフォルトの名無しさん
2011/04/12(火) 23:36:42.330498デフォルトの名無しさん
2011/04/12(火) 23:44:31.330499デフォルトの名無しさん
2011/04/13(水) 00:00:52.14分かりにくいので絵を持ってきました。
こんな色を再現したいです。
上の方は実際にレンダリングしたもので
・光源アンビ :(0.2, 0.2, 0.2) // glLightfv
・マテリアンビ:(0.8, 0.7, 0.5) // glMaterialfv
です
http://www.dotup.org/uploda/www.dotup.org1524144.png
影が下みたいな綺麗なオレンジにならないです・・
>>498
なるほどやっぱり1.2は・・・
0500デフォルトの名無しさん
2011/04/13(水) 00:02:24.89大きいおっぱいが好きなので!!
>OpenGL2.0以降
orz
0501デフォルトの名無しさん
2011/04/13(水) 00:16:10.24アルファは関係ない?4要素目。
0502デフォルトの名無しさん
2011/04/13(水) 00:17:26.81>>493
トゥーンレンダリングは今のところ考えていないですけど
そんな何時で影の色を変えたいです
>>497
最初はglMaterialfvで出来ると思ってた・・・
0503デフォルトの名無しさん
2011/04/13(水) 00:29:35.43絵の【理想】に近づけるとすればマテリアルが
アンビ(0.8, 0.4, 0.0)
ディフ(1.0, 1.0, 1.0)
って感じじゃないか
影の部分がオレンジで、光当たってる部分は白っぽいし。
試さないで口だけでスマソorz
0504デフォルトの名無しさん
2011/04/13(水) 00:38:58.43さっきも言ったとおり掛け算だから光源アンビエントが0.2だと影が黒に近くなるや
全体的に明るめだし、もっと上げていい。
本当に絵みたく影を鮮やかなオレンジにするにはそれこそ
光源アンビ(1.0, 1.0, 1.0)
材質アンビ(1.0, 0.5, 0.0)
しかないと思う。でもこれってどうなんだろ;
0505デフォルトの名無しさん
2011/04/13(水) 01:05:35.02やってみたけど黒くなるとこは黒くなるのであまり効果なかったです
>>503-504
めっちゃ蛍光色w
503のは黒っぽいけどいい感じ
組み合わせ次第で黒っぽさを目立たなくすることは出来そうです
色々試すしかないかな メタセコもそろそろ使い方覚えないと・・
0506デフォルトの名無しさん
2011/04/13(水) 03:00:38.350507デフォルトの名無しさん
2011/04/13(水) 03:09:12.09それとも、
光源アンビ(0.2, 0.2, 0.2)のままで
材質アンビ(3.0, 1.5, 0.0)
とか1.0以上指定してもいいのかな(できた気がする)
2Dみたいな陰の色をマテリアルで表現するにはどうするか自分も気になる・・・。
0508デフォルトの名無しさん
2011/04/13(水) 07:53:27.48glTexGen 系関数を使って環境マッピングと同じ要領でレンダリングすけば
比較的簡単に実現できそうな気がするが、1.2 では使えないの?
0509デフォルトの名無しさん
2011/04/14(木) 02:28:26.47できたorz
結論から言うと主光源と対角線の方向から副光源(平行光)を当てるでした。
副光源は以下にしました。
・アンビエント:主光源と同じ
・ディフューズ:おさえめ
・スペキュラ :なし
こうするとマテリアルのアンビ色が生きて肌のシェイドがオレンジになりました。
反対方向から当てる光は赤っぽいのじゃなくて普通に白い光で良かったという・・・
白い光なので肌だけに限定適用しなくても良くていい感じです
http://www.dotup.org/uploda/www.dotup.org1527500.png
0510デフォルトの名無しさん
2011/04/14(木) 05:18:22.920511デフォルトの名無しさん
2011/04/14(木) 17:28:32.39それなら なおさら一つめの光源アンビエントを上げるだけで済むはずなんだが…
なんでそれじゃ駄目だったんだ?
0512デフォルトの名無しさん
2011/04/14(木) 17:29:03.17>>463とかでも誰も答えてないんだけど。
モデリングツールで作ったモデルをopenglなりDirectXで表示させるには
モデリングツールのスクリプトで頂点やら法線やらを出力するべきなんじゃないのか。
コードをそのまま出力させても良いと思うし。
フォーマットの問題もメタセコイアみたいにモデリングツール自体が複数フォーマットに対応してるんで解決できると思うし・・・
わざわざフォーマットのパーサなんか作るもんなの?
0513デフォルトの名無しさん
2011/04/14(木) 18:05:47.82何を答えりゃいいのかさっぱりわからんが
出来合いのパーサが提供されてるフォーマットを選べばいいだけしょ?
0514デフォルトの名無しさん
2011/04/14(木) 19:06:08.62Diffuse :光源の方向に向かってグラデーションみたいに当たる光。
Specular:光源がそのまま反射して映って見える光。
光源と材質ではそれぞれの色が掛け算だけど、
これら3つ自体は足し算のようで、Ambient上げれば全体が明るくなる。
パーサ作るの自体は実は難しくないみたいなんだが
0515デフォルトの名無しさん
2011/04/14(木) 20:36:08.06http://www.nec.co.jp/press/ja/0111/3001.html
10年前か・・
0516デフォルトの名無しさん
2011/04/15(金) 00:33:20.33テクスチャを使用しているかどうか(GL_TEXTURE_2DがEnableか否か)を
シェーダ内で取得する方法はないでしょうか。
Uniformで渡す手法は、他人の3Dモデル読み込みライブラリを
用いたときにコードの修正が必要なのでそれ以外の方法を探しています。
0517デフォルトの名無しさん
2011/04/15(金) 00:52:29.49GLSL使う場合はTexture2Dが有効無効は関係なく、シェーダーのコード内で貼ってれば貼られるし、貼られてなければ貼られない。
0518デフォルトの名無しさん
2011/04/15(金) 01:10:07.36かってにenableになるぞ。
0519デフォルトの名無しさん
2011/04/15(金) 01:14:40.50レスありがとうございます。
こちらの説明不足でした。
例えば、固定パイプラインを用いてポリゴンを描画する場合の
テクスチャを使用しない→glDisable(GL_TEXTURE_2D)
テクスチャを使用する→glEnable(GL_TEXTURE_2D)
の切り替えをシェーダ内で行ないたいのです。
Texture2Dがシェーダ内のsampler2Dに影響を与えないため、
テクスチャを使用したくないポリゴンに
以前指定した画像が貼られてしまって気持ちの悪い状態になっています。
ですので、Uniformで渡す手法以外(組み込み変数等)で
Texture2DのOn/Offを取得する方法がないか探しています。
0520デフォルトの名無しさん
2011/04/15(金) 01:36:16.04gl_FragColor = texture2D( texture0, gl_TexCoord[0].st );
else
gl_FragColor = gl_Color;
0521デフォルトの名無しさん
2011/04/15(金) 02:20:28.560522デフォルトの名無しさん
2011/04/15(金) 02:23:22.25まぁすごい過疎りそうだけどな・・・最近GLスレがちょっと元気でうれしい
0523デフォルトの名無しさん
2011/04/15(金) 02:23:52.74レスありがとうございます。
自動でenableですか・・・。
glGetで調べたことがなかったので知りませんでした。ありがとうございます。
>>520
レスありがとうございます。
やはりUniform以外だと厳しいみたいですね;もう少し調べてみます。
0524デフォルトの名無しさん
2011/04/15(金) 08:28:33.51小さくて透明なテクスチャを常に貼ってしまう手もあるけど
0525デフォルトの名無しさん
2011/04/15(金) 11:21:49.450526デフォルトの名無しさん
2011/04/15(金) 20:31:58.42追ってないからわからないんだが
順調に進化してるのかね?>AL
0527デフォルトの名無しさん
2011/04/16(土) 11:01:49.36そして即落ちたような
0528デフォルトの名無しさん
2011/04/17(日) 15:23:23.05自前のプログラムに追加してみたらテクスチャーが貼られなくなっちゃったんだけど
これも全部シェーダーに実装しないとだめ?
0529デフォルトの名無しさん
2011/04/17(日) 15:56:03.39ピクセルの色を決めるのがピクセルシェーダーなんだから
0530デフォルトの名無しさん
2011/04/17(日) 17:17:07.32まんどくさ。
0531デフォルトの名無しさん
2011/04/17(日) 17:32:53.150532デフォルトの名無しさん
2011/04/17(日) 20:43:35.20Tonyかべっかんこう塗りシェーダーがいいです。
0533デフォルトの名無しさん
2011/04/17(日) 21:05:18.440534デフォルトの名無しさん
2011/04/17(日) 22:31:20.13ってか自分で作れよ。
0535デフォルトの名無しさん
2011/04/17(日) 23:52:50.76テクスチャで頑張った方がそれっぽくなるんだよね
プロジェクションマップに弱めのライトマップとか
実例という意味ではmmViewer関連が参考になるかも
0536デフォルトの名無しさん
2011/04/18(月) 00:01:17.50OpenGLでのポストエフェクトって
Direct3Dに比べると資料がすごく少ないんだよね
何かいい資料があったら教えてほしい
0537デフォルトの名無しさん
2011/04/18(月) 00:10:43.96資料はどっちのでも使えそう。
0538デフォルトの名無しさん
2011/04/18(月) 01:39:28.55実際にはドライバ依存とかでハマるんだよなぁ
「動くものが実在する」というのは心の支えになる
0539デフォルトの名無しさん
2011/04/18(月) 06:36:21.340540デフォルトの名無しさん
2011/04/18(月) 09:30:23.550541デフォルトの名無しさん
2011/04/18(月) 23:28:51.730542デフォルトの名無しさん
2011/04/18(月) 23:41:46.800543デフォルトの名無しさん
2011/04/18(月) 23:45:27.030544デフォルトの名無しさん
2011/04/19(火) 00:04:58.58>>543 α以外の部分もおかしくなるじゃんかー
奥から描画順ソートしたりα付きポリが他のポリと交差する場合αポリを分割するとか
みんなこういう処理自前で書いてるん?
それと描画順ソートとかしたら頂点配列使えなくならない?
0545デフォルトの名無しさん
2011/04/19(火) 00:20:59.750546デフォルトの名無しさん
2011/04/19(火) 01:03:48.51デファードとか原理的に半透明使えない筈だが
みんな色んな工夫をかまして頑張っているのさ。
0547デフォルトの名無しさん
2011/04/19(火) 17:03:49.56ポリゴンごとにソートしないで、
いくつかのかたまりを適当に作って奥から順に描画するのが
普通だと思っていた
交差するポリゴンとかは諦めるんだと思う。
0548デフォルトの名無しさん
2011/04/19(火) 20:04:19.79不透明を全部描いてからDFPTHTEST ON/Depth書き込みOFF/CULLING ONで半透明ポリの裏向き/表向きをソートせずに描画
でうまくいくパターンが多かったかも
0549デフォルトの名無しさん
2011/04/19(火) 22:54:41.92ありがとうございます。
みんな色々試行錯誤してるんですね。難しい・・
モチベーション下がらないように他の部分進めながら考えていくかな
0550デフォルトの名無しさん
2011/04/20(水) 00:10:44.61αブレンドしてるのに見た目おかしくない。
交差してても平気みたいだし。
0551デフォルトの名無しさん
2011/04/20(水) 01:36:16.710552デフォルトの名無しさん
2011/04/20(水) 01:36:30.29うちの爺ちゃんが言ってた。
0553デフォルトの名無しさん
2011/04/20(水) 01:42:21.610554デフォルトの名無しさん
2011/04/20(水) 08:15:12.94環境的にはなんでもありだよ
0555デフォルトの名無しさん
2011/04/20(水) 08:35:45.37眼鏡をどうするか
それが死活問題だ
0556デフォルトの名無しさん
2011/04/20(水) 08:48:08.65ttp://game.watch.impress.co.jp/docs/news/20090902_312460.html
0557デフォルトの名無しさん
2011/04/20(水) 09:02:09.43よく判ってるじゃねえか
0558デフォルトの名無しさん
2011/04/20(水) 10:50:55.84「前髪を描いてから、目を描く」というテクニックは勉強になった。なるほどなぁ。
頭(あるいは視点)をグルグル回転させるアニメーションをしたときに違和感でそうだけど、角度を限定していれば、それなりにうまくいきそう。
でも、なんか「このライター、頭悪いんじゃねぇの?」と感じる文章だな。
> めがねをかけた場合、顔>メガネ>目>前髪と描画される。
> まず顔を描き、前髪を描画してから前髪のデプス値をクリア、顔のデプス値を書き込み目を描画。
> ツルをのぞいたメガネを描画してから、前髪のデプス値を書き込み、目立つめがねのツルを最後に書き込む。
前後の文章が連続しているとはとても思えないんだが。
0559デフォルトの名無しさん
2011/04/20(水) 13:28:16.230560デフォルトの名無しさん
2011/04/21(木) 01:43:13.70結果的にその順で描画される事になると言いたいんじゃね?
0561デフォルトの名無しさん
2011/04/21(木) 02:55:57.25部分的なデプス値のクリアってなんだ
0562デフォルトの名無しさん
2011/04/21(木) 08:29:38.43デプスバッファのコピーをもどしてるのかもね
0563デフォルトの名無しさん
2011/04/21(木) 23:03:18.620565デフォルトの名無しさん
2011/04/23(土) 21:43:07.92それって可能だという前提?
0566デフォルトの名無しさん
2011/04/26(火) 14:18:46.08以下のようにx軸を時間,y軸を周波数,信号成分の強さを色の明るさとして描画すると、重くなってしまいます。
float df = 22050 / (float)(ps.maxrect.width());
double logmax = log2(1+df*vdata.at(0).count()/1000.0);
glBegin(GL_POINTS);
for(int j = 0; j < vdata.count(); j++)
{
for(int k = 0; k < vdata.at(j).count(); k+=2)
{
glColor4f(0,vdata.at(j).at(k),vdata.at(j).at(k),1);
glVertex2d(j, log2(1+df*k/1000.0)/logmax * height);
glColor4f(0,vdata.at(j).at(k+1),vdata.at(j).at(k+1),1);
glVertex2d(j, log2(1+df*(k+1)/1000.0)/logmax * height);
}
}
VBOとか頂点配列使うと余計に重くなります。なんとか高速化する方法はないのでしょうか。
OpenGL初心者なんで変なこと言ってたらすみません。
0567デフォルトの名無しさん
2011/04/26(火) 15:07:45.500568デフォルトの名無しさん
2011/04/26(火) 18:32:06.40減らせとしかいいようがない。
1フレーム何個描いてるの?
0569デフォルトの名無しさん
2011/04/26(火) 20:14:45.560570デフォルトの名無しさん
2011/04/26(火) 20:55:03.160571デフォルトの名無しさん
2011/04/26(火) 22:00:06.390572566
2011/04/26(火) 22:34:23.891フレーム約50万個の点があります。
やはり点の数が多すぎるのでしょうか・・・
テクスチャですか、試してみたいと思います。
0573デフォルトの名無しさん
2011/04/26(火) 22:39:49.87描画位置は変わらないなら1回計算した値をとっとけ
0574デフォルトの名無しさん
2011/04/26(火) 22:53:30.130575566
2011/04/26(火) 22:53:53.97変換テーブル作ったらちょっと速くなりました!
けど他の表示(波形やスペアナ)に比べるとやはり遅い・・・
点の数を減らすしかないですね。
0576デフォルトの名無しさん
2011/04/26(火) 23:53:50.87その上でOpenCLだかGLSLだか使えば一瞬だと思うんだけど、どうなんでしょう > 識者の方
0577デフォルトの名無しさん
2011/04/27(水) 00:18:43.06点の数を減らせば猛烈に速くなる?
時間で動くバッファはリングバッファにするとコピーしなくてすむはず
0578デフォルトの名無しさん
2011/04/27(水) 00:42:20.91もちろん日本語で
0579デフォルトの名無しさん
2011/04/27(水) 00:43:42.98もしそうならフラグメントシェーダーかOpenCL使った方がいいでしょ
0580デフォルトの名無しさん
2011/04/27(水) 12:39:02.92DirextXのデバイスロストのような感じになります。
サンプルはNeHeのLesson3(vc++)。動作はウィンドウモードです。
ttp://nehe.gamedev.net/data/lessons/lesson.asp?lesson=03
一応F1キー処理を変更して、再度初期化させたのですが無理でした。
よろしくお願いします。
0581デフォルトの名無しさん
2011/04/27(水) 15:43:08.92GLFW使ってるけど、日本語の解説は探しても無かったから公式の英語リファレンス見て使ってる。
公式リファレンス英語だけど中学生でもわかるレベルだから一度目を通すことをオススメ。
あとglutとか使ったことあるなら感覚は同じだよ。
0582デフォルトの名無しさん
2011/04/27(水) 17:51:32.950583580
2011/04/28(木) 09:01:48.20Win7クラシックモード特有の問題でした。
解決策は分かりませんが、お騒がせしました。
0584デフォルトの名無しさん
2011/04/28(木) 13:52:28.08参考になる本やサイト等ありましたら教えていただけないでしょうか?
0585デフォルトの名無しさん
2011/04/28(木) 15:23:09.56マウスピックアップ とか セレクションバッファ でググってみればいいんじゃね?
0586デフォルトの名無しさん
2011/04/28(木) 16:04:40.00ありがとうございます。
マウスというよりWiiリモコンを用いて3次元を操作できるマウスが正確です
0587デフォルトの名無しさん
2011/04/28(木) 16:26:52.18書いてないことまで推測できんわしらんがなw
0588デフォルトの名無しさん
2011/04/28(木) 18:05:49.920589デフォルトの名無しさん
2011/04/28(木) 18:30:07.09自分から情報小出しにして、望んだ解答が得られないとスネちゃう子ばっかりなんだろ・・・
0590デフォルトの名無しさん
2011/04/28(木) 19:21:53.48wglSwapIntervalEXT()を使うしかありませんか?
0591デフォルトの名無しさん
2011/04/28(木) 19:48:46.95の文字の大きさを自由に変更するにはどうすればよいですか?
0592デフォルトの名無しさん
2011/04/28(木) 20:40:01.080593デフォルトの名無しさん
2011/04/28(木) 20:47:50.26ありがとうございます
やってみます
0594デフォルトの名無しさん
2011/04/28(木) 21:48:09.51糞の集まりだわ
0595デフォルトの名無しさん
2011/04/28(木) 21:50:19.48お前みたいなのが一番うざいんだよw
0596デフォルトの名無しさん
2011/04/28(木) 21:57:27.71WindowsならwglSwapIntervalEXT()か、それすらOS依存がヤダっていうならなんかライブラリ使うしかない。
GLFWとか使うとglfwSwapInterval()なんてのがある。SDLだったらSDL_GL_SetAttribute()でパラメータ渡したらできたきがする。
0597デフォルトの名無しさん
2011/04/28(木) 22:18:10.12丁寧に感謝します!
なるほど、ひとまず今回はwglSwapIntervalEXTのアドレスとってwindows依存でいきます
ありがとうございました!
0598デフォルトの名無しさん
2011/04/29(金) 08:14:28.864月だからだろ。
0599デフォルトの名無しさん
2011/05/01(日) 21:16:03.52glColor3f(1.f, 0, 0);
glPushAttrib(GL_COLOR_BUFFER_BIT);
glColor3f(1.f, 1.f, 1.f);
glPopAttrib();
(三角形描画)
としたのですが、三角形が赤になると思ったのですが、白になってしまいます。
なぜでしょうか?
0600デフォルトの名無しさん
2011/05/01(日) 21:29:25.41ためしてないけど、GL_CURRENT_BITじゃね?
0601デフォルトの名無しさん
2011/05/01(日) 22:02:31.73ありがとうございます。
すみません。GL_CURRENT_BITでもだめでした・・・
0602デフォルトの名無しさん
2011/05/01(日) 22:08:12.491.push
2.描画
3.pop
の順だ。
0603デフォルトの名無しさん
2011/05/01(日) 22:20:20.91ためしたが、GL_CURRENT_BITでうまくいったが
>>602
1. push
2. color
3. pop
で2のcolorが無効になるはずなのにならないのはおかしいって話
0604599
2011/05/01(日) 22:35:03.72glBegin
glEnd
の外でpush popすることでうまくいきました。
中ではだめなのですね・・・
ありがとうございました。
0605デフォルトの名無しさん
2011/05/01(日) 23:36:15.280606デフォルトの名無しさん
2011/05/02(月) 15:52:49.86ちょっと訂正したかっただけだろw
0607デフォルトの名無しさん
2011/05/02(月) 16:22:30.540608デフォルトの名無しさん
2011/05/03(火) 11:00:23.03話が噛み合ってなくて笑った。
何がどうなったのかw
>>599はpush,color,pop,描画してるから白で描画されるのは当たり前な(>>602でそう指摘されている)。
それにたいして>>604で頓珍漢なことをやって解決したことになってるw
0609デフォルトの名無しさん
2011/05/03(火) 11:12:09.70赤,push,白,pop,描画 なら赤だろ。なんで白で当たり前なんだよw
0610デフォルトの名無しさん
2011/05/03(火) 13:30:32.24面白そうなので自分で試してみた。PARTICLE_NUM=100万個として
glBegin (GL_POINTS);
for (int i = 0; i < PARTICLE_NUM; i++) {
glColor3fv (colors[i]);
glVertex3fv (positions[i]);
}
glEnd ();
これでうちのHD5770だと35fps出た。
ちなみにディスプレーリストを使うと550fpsぐらい。
現代のGPUでも100万パーティクルを毎回描画するのはきつい。
1パーティクル4頂点で計算すると22億頂点なので性能的にはこんなものだろう。
0611デフォルトの名無しさん
2011/05/03(火) 20:48:39.94glutMainLoop()でループに入ってしまい抜け出せないのですがどうすればよいのでしょうか?
0612デフォルトの名無しさん
2011/05/03(火) 21:25:53.23マジレスするとその用途ではGLUTは使えない。
理由はスレッドセーフでないから。
0613デフォルトの名無しさん
2011/05/03(火) 21:31:14.71そうなんですか
OpenGLかDirectXでCG描画しながら
OpenCVのプログラムを走らせたいのですがどのような方法がありますでしょうか?
0614デフォルトの名無しさん
2011/05/03(火) 21:37:45.52ttp://d.hatena.ne.jp/gust_notch/20100923/p1
0615デフォルトの名無しさん
2011/05/03(火) 22:10:48.84ttp://www.masayashi.com/opencv_and_opengl
こんなんとか?
0616デフォルトの名無しさん
2011/05/03(火) 23:05:28.190617デフォルトの名無しさん
2011/05/04(水) 02:53:14.47そっちのスレッドからはOpenGL関数を呼び出さないことを条件で。
0618デフォルトの名無しさん
2011/05/04(水) 20:18:29.38黒になって欲しいのになぜか赤になってしまいます。
GL_RGBAなのにGL_RGBかのような動作になってしまっているのかもしれません。
どんな原因が考えられますか?
ttp://codepad.org/9bBzk2V4
0619デフォルトの名無しさん
2011/05/04(水) 20:30:44.67たぶんリトルエンディアンだからじゃね
リトルエンディアンで GL_RGBA で GL_UNSIGNED_BYTE で unsigned int の 0x000000ff なら R=255, G=0, B=0, A=0 だ
0621デフォルトの名無しさん
2011/05/04(水) 21:43:25.370622デフォルトの名無しさん
2011/05/04(水) 21:45:21.290623デフォルトの名無しさん
2011/05/04(水) 21:51:48.450624デフォルトの名無しさん
2011/05/05(木) 00:41:25.39どういった方法がありますか?
0625デフォルトの名無しさん
2011/05/05(木) 02:25:54.90glCopyTexSubImage2D
0626デフォルトの名無しさん
2011/05/05(木) 02:34:09.76ああ、なるほど。
盲点でした。FBO関連のコマンドを探していました。
テクスチャなのでglCopyTexSubImage2Dが使えるんですね。
使ったことが無いので描画ルーチン内で
速度がどうなるのかが気になりますが
ちょっとこれでワークをtmpに退避させてみます。
ありがとうございました。
0627デフォルトの名無しさん
2011/05/05(木) 03:07:53.09アルファコピーされないけど
0628デフォルトの名無しさん
2011/05/05(木) 03:09:51.53DirectXでいう グローバルアンビエントライト
device->SetRenderState( D3DRS_AMBIENT, 0xff030303);
みたいなやつってありませんか?
GL_LIGHT0〜が関係ない明るさです
0629628
2011/05/05(木) 04:41:03.400630デフォルトの名無しさん
2011/05/05(木) 04:52:11.21どのように解決したかも書いてもらえると嬉しいです。
0631デフォルトの名無しさん
2011/05/05(木) 08:52:21.96glPushAttribに何を指定すればよいのでしょうか?
赤本が2.0までしか記述されていないので代わりにVBOの節を探してみましたが
見つからず・・・。
申し訳ありませんが、どなたかご存知の方、教えていただけないでしょうか。
0632デフォルトの名無しさん
2011/05/05(木) 11:06:22.52glPushClientAttribにGL_CLIENT_PIXEL_STORE_BITを指定…っぽい
0633デフォルトの名無しさん
2011/05/05(木) 11:52:25.19ONEZEROってなんですか?BlendFunc?
0634デフォルトの名無しさん
2011/05/05(木) 15:17:23.37面の法線を計算したものから推測させることは出来るけど頂点は共有してるけど面としては無関係って場所は法線が狂う気がするんだけど
例えば顔の頂点と髪の頂点が重なるようなとことか顔の面と髪の面の法線から頂点法線を求めてしまって
モデル製作者の意図した頂点法線とはならないんじゃないかと
顔と髪でオブジェクトを分けてあればこんなこと起こらないけどそういう制限ないよね?
0635デフォルトの名無しさん
2011/05/05(木) 15:24:46.500636デフォルトの名無しさん
2011/05/05(木) 18:12:33.980637デフォルトの名無しさん
2011/05/06(金) 13:51:11.69いまどきは何を始めるのがいまどきなんでしょうか。
0638デフォルトの名無しさん
2011/05/06(金) 15:16:09.85お前様にとって今が「旬」なのだから好きに始めればいい
0639デフォルトの名無しさん
2011/05/06(金) 16:39:01.11レビューでいまどき発言が多かったので急に萎えて止めました。
これからもそうします。
0640デフォルトの名無しさん
2011/05/06(金) 17:03:32.08GPUは対応してるってのがもどかしい
0641デフォルトの名無しさん
2011/05/06(金) 17:30:32.03そんなに最新がいいならDirextX11でもやれよ。
流行がどうとかこうとかで言語とライブラリを選ぶようなら何もできないから
プログラムなんかやらないほうがいい。多少選ぶことは必要だけど。
0642デフォルトの名無しさん
2011/05/06(金) 17:31:02.50○DirectX11
0643デフォルトの名無しさん
2011/05/06(金) 23:44:27.35どんなアプローチが多い(定石)ですか?
またいくつか選択肢があれば教えてください
0644643
2011/05/07(土) 00:34:37.46wglUseFontBitmapsW
でやることにしました。
スルーしてください
0645デフォルトの名無しさん
2011/05/07(土) 01:03:00.05wglUseFontBitmapsWで文字を描画できましたが、
この二つの関係がイマイチ理解できません。
glGenListsで生成し、
wglUseFontBitmapsWで作られるディスプレイリスト
とはいったい何なんでしょうか?
1文字分のビットマップ?はたまた命令郡?
wglUseFontBitmapsWは中で何をしているのでしょうか?
0646デフォルトの名無しさん
2011/05/07(土) 01:30:34.92http://msdn.microsoft.com/en-us/library/dd374392(v=vs.85).aspx
> Each display list consists of a single call to glBitmap.
0647デフォルトの名無しさん
2011/05/07(土) 02:00:53.71なるほど、glBitmapを読んで文字を描画する命令郡ですか。
ありがとうございました
0648デフォルトの名無しさん
2011/05/07(土) 16:16:41.42-1〜+1で
奥が+ですか?
右手座標で奥が-じゃないかと思っていて結果が逆転したので
質問です。
0649デフォルトの名無しさん
2011/05/07(土) 21:11:09.00つまり投影行列が Z を反転しているんです
投影行列を通した座標系と投影行列を通さない生の座標系は違って見えます
Zバッファ自体 (ウィンドウ座標) は 0〜1 でプラスが奥です
正規化装置座標は -1〜+1 でプラスが奥です
投影行列が作り出す眼点座標はマイナスが奥です
0650デフォルトの名無しさん
2011/05/08(日) 14:42:56.28OpenGLのバージョンは2.1.0なんですが、3.0から固定シェーダが無くなり
GLSLを書く必要があると聞きました。
自分は固定シェーダの表示で全然満足なんですが
将来性を考えるとGLSLを書く必要がありますか。
GLUTによる「手抜き」(ry等で紹介されているような
GLSLを書かずいきなり立方体を表示するようなコードは
3.0からは動かなくなるのでしょうか。
0651デフォルトの名無しさん
2011/05/08(日) 16:16:37.18実装依存だから必ず動くわけではないけど
http://www.opengl.org/
ここの右側のThe OpenGL 4.1 Quick Reference Guide (PDF)で青文字になってる関数が互換プロファイル必要
趣味なら別に固定機能だけ使っててもいいし気にしなくていいよ
固定機能使えない環境に遭遇したり、ゲーム業界入りたいとか思ったら覚えたらいい
0652デフォルトの名無しさん
2011/05/08(日) 17:40:19.76こんなにたくさん廃止されてしまうのか・・・
(逆に、GLSLでこれだけ書けるのか・・・)
0653デフォルトの名無しさん
2011/05/08(日) 18:42:39.17なるほどありがとうございました
0654デフォルトの名無しさん
2011/05/08(日) 21:26:17.06以下のコードが、Linux環境では普通に動くのですが、
MacportsにてMesaをインストールしたものでコンパイルの上実行すると、
GLUの関数を用いたところでsegmentation faultになってしまいます。
おそらく非常に初歩的なところで詰まっていると思うのですが、
どこがまずいでしょうか。
#include <GL/osmesa.h>
#include <GL/glu.h>
int main()
{
const int width=100;
const int height=100;
const int u=3;
unsigned char* pix = new unsigned char[width*height*u];
OSMesaContext ctx = OSMesaCreateContext(GL_RGB,0);
OSMesaMakeCurrent(ctx,pix,GL_UNSIGNED_BYTE,width,height);
glLoadIdentity();
gluPerspective(30,1,1,-1);
//↑をコメントアウトすると動く
glFinish();
OSMesaDestroyContext(ctx);
}
0655デフォルトの名無しさん
2011/05/08(日) 22:15:28.250656デフォルトの名無しさん
2011/05/08(日) 23:19:22.560657デフォルトの名無しさん
2011/05/09(月) 00:38:54.930658654
2011/05/09(月) 01:11:12.40なぜでしょうか。
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
void hoge()
{
glLoadIdentity();
gluPerspective(30,1,3,1);
}
int main(int argc,char** argv)
{
const int width=100;
const int height=100;
glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutCreateWindow("");
glutDisplayFunc(hoge);
glutMainLoop();
}
なお、>>654のコンパイルオプションは
g++ -lOSMesa -lGLU hoge.cppおよびg++ -lOSMesa -lGL -lGLU hoge.cppで、
このサンプルはg++ -lGL -lGLU -lGLUTでコンパイルしてます。
MacPortsのライブラリが置いてある/opt/local/libはLIBRARY_PATHにもLD_LIBRARY_PATHにも含めてあります。
0659654
2011/05/09(月) 01:11:52.55呼び出し規約が違うとはどういう事でしょうか?
どのようにその可能性を確かめて、どのように対処すれば良いのでしょうか?
質問ばかりですみません。
>>656-657
私も試しましたが、そこが問題ではないようです。
というか、任意のGLUの関数(他にもgluLookAtなど)でsegmentation faultするようですね。
0660デフォルトの名無しさん
2011/05/09(月) 01:52:06.80呼び出し規約っていうのは関数を呼び出すときに引数をどう受け渡すかとかの決め事で
アセンブラレベルの話。引数を一番後ろからスタックに積むとか前から積むとか
引数はレジスタに設定するとかスタックを戻すのは呼び出し側か呼び出し先かとか色々ある
例えば>>655が呼び出し側でスタックを戻す呼び出し規約で関数を呼んで
ライブラリ側では呼び出し先がスタックを戻す規約を使ってた場合
スタックのズレが発生して内部データぐちゃぐちゃ→変なアドレスにreturnとかやばいことになる
俺はWindowsしかわからないから他のOSの事は知らないから
GL/osmesa.hとライブラリの組み合わせがおかしいんじゃないとしか言えない
0661デフォルトの名無しさん
2011/05/09(月) 02:24:24.07ありがとうございます。
一応全てOpenGL関連のライブラリは自分のMacでgccでコンパイルしているはずなのですが、
コンパイラが一致していればアセンブラレベルへの落とし方の違いが問題になるとは考えにくいですよね。
MacPortsスレで聞いたほうが良いですかね?
0662デフォルトの名無しさん
2011/05/09(月) 02:30:14.38前スレの636-637で -lGLするとよくない的なこと書いてあるけど関係ない?
0663デフォルトの名無しさん
2011/05/09(月) 03:02:33.09ありがとうございます。
あの質問者、実は自分でしてw
それで、-lGLを付けたり消したりしたのですが、変わらないですねえ。
0664デフォルトの名無しさん
2011/05/09(月) 03:04:46.910665デフォルトの名無しさん
2011/05/09(月) 03:09:06.07一つには、ウィンドウに描画せずに直接画像に落としたいから。
そしてもう一つ、LinuxとMacでできるだけ共通のコードを使いたいから。
以上の理由からMesaを使っているのですが、もっと良い方法はあるでしょうか。
0666デフォルトの名無しさん
2011/05/09(月) 03:16:13.78ひとつ目はテクスチャに書いて glGetTexImage とか使えば良いんじゃないの
Mac OS X にもデフォルトで OpenGL は入ってるよ
二つ目は分からないけど Makefile とかで解決出来そうな気がするけど
外してたらゴメンね
0667デフォルトの名無しさん
2011/05/09(月) 18:55:29.000668デフォルトの名無しさん
2011/05/09(月) 19:05:21.47どういう形で増やすの?
誰が増やすの?
お手軽固定シェーダ廃止を決定する人=お手軽固定シェーダを増やす人?
0669デフォルトの名無しさん
2011/05/09(月) 19:39:40.03アセンブラ書けって言われてるわけでもないんだし覚えろよ。
だいたい板一枚表示するとかそういう簡単な作業は現状固定機能で
できるわけだし何が不満なんだ。
0670デフォルトの名無しさん
2011/05/09(月) 19:59:50.580671デフォルトの名無しさん
2011/05/09(月) 20:53:54.490672デフォルトの名無しさん
2011/05/09(月) 21:00:38.95たとえOpenGLのど素人でも、質問だけはしっかり意味が通るようにしてほしい
0673デフォルトの名無しさん
2011/05/09(月) 21:05:43.13Unreal EngineとかUnityとか無料で使えるし。
綺麗な画面がすぐ作れるよ。
0674ど素人
2011/05/09(月) 21:18:14.69わかった。もう少し頑張る方針で。
今やっと車の一部が出来上がった所でござる
0675デフォルトの名無しさん
2011/05/09(月) 22:23:49.000676デフォルトの名無しさん
2011/05/10(火) 01:06:11.940677デフォルトの名無しさん
2011/05/10(火) 21:14:39.94DirectXではエンドユーザーランタイム等の形で、
実行するための環境を整えなければなりませんが、
OpenGLの場合は、OSにデフォルトで入っている場合が多いと聞きますが、
実行環境を整えるのにどのようなことに気をつければいいのですか?
例えば、GLUTを使っていれば.DLLも同時配布しなければならない等
0678デフォルトの名無しさん
2011/05/10(火) 22:02:08.21それ以外はないから必要であれば添付する
あとはグラボのドライバ更新するくらい
0679デフォルトの名無しさん
2011/05/10(火) 22:29:19.36なるほど、
ありがとうございます。
0680デフォルトの名無しさん
2011/05/10(火) 22:31:08.950681デフォルトの名無しさん
2011/05/10(火) 23:38:55.23glVertex2f(-1.f, -1.f);
glVertex2f(1.f, -1.f);
glVertex2f(1.f, 1.f);
glVertex2f(-1.f, 1.f);
glEnd();
と書きましたが、左と下の枠は表示されません。
これは左下のピクセルが(-1,-1)よりも少し+の座標である?
と思い
glBegin(GL_POINTS);
glVertex2f(-1.f, -1.f);
glEnd();
と書きましたら点がでました。
OpenGLでは端っこのピクセルの座標は-1や1とは違うんですか?
ビューポートをいじくってはいないデフォルトの状態での話です。
0682デフォルトの名無しさん
2011/05/11(水) 00:00:04.150683デフォルトの名無しさん
2011/05/11(水) 00:05:57.300684デフォルトの名無しさん
2011/05/11(水) 00:15:49.510685681
2011/05/11(水) 00:37:55.95テクスチャ座標とおなじかんじで考えればいいってことですか?
ttp://iup.2ch-library.com/i/i0305761-1305041804.jpg
0686デフォルトの名無しさん
2011/05/11(水) 00:53:41.28点と線は半ピクセルずらせとは言われてるな。
0687681
2011/05/11(水) 01:48:34.13テクスチャでも例えば、正確には0,0が左上のピクセルではなくずれますよね
そういった意味で同じ感じという次第です
0688デフォルトの名無しさん
2011/05/11(水) 09:17:25.75ttp://create.msdn.com/ja-JP/education/catalog/utility/spritebatch_shader
0689681
2011/05/11(水) 16:15:42.13読んでみてもイマイチよくわからなかったですが
とりあえずずらしているというのは分かりました。
まあ何とか今の理解でできそうなのでやってみます。
ありがとうございました。
ココですよね
position.xy -= 0.5;
// Viewport adjustment.
position.xy /= ViewportSize;
position.xy *= float2(2, -2);
position.xy -= float2(1, -1);
0690デフォルトの名無しさん
2011/05/12(木) 15:22:36.10参考になりそうな、サンプルソースとか
そういう系を詳しく解説してるサイトってないかな?
OpenGL 雷
OpenGL エフェクトとかでググってるんだが見つからない・・
0691デフォルトの名無しさん
2011/05/12(木) 15:53:35.11そのほうが資料も多いし。
0692デフォルトの名無しさん
2011/05/12(木) 19:28:32.200693デフォルトの名無しさん
2011/05/12(木) 22:00:53.960694デフォルトの名無しさん
2011/05/12(木) 22:36:23.46ポリゴンをぼやっと光らせるにはどうしたらいい?
よくゲームでキャラの周りがぼやっと光ったりするみたいな感じで
0695デフォルトの名無しさん
2011/05/12(木) 23:10:05.69もともとそういうテクスチャ使うかブルーム使う。
雷なぼやけてるテクスチャ描いて加算合成すればいいんじゃないの。
0696デフォルトの名無しさん
2011/05/13(金) 23:36:45.190697デフォルトの名無しさん
2011/05/14(土) 00:16:45.760698デフォルトの名無しさん
2011/05/14(土) 01:24:32.53Aが0の部分でRGBも0になるような画像は補間すると境界部分に黒が見えるってことじゃないでしょうか
Aが0の部分もRGBちゃんと色を保ってるような画像なら問題ないでしょう
Premultiplied alpha もおすすめ
0699デフォルトの名無しさん
2011/05/14(土) 06:38:11.49ひにけにブログとかいくつか読んだんだけど
0700デフォルトの名無しさん
2011/05/14(土) 10:28:02.19glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
の形で行うけど、これはつまり
dstRGB' = srcRGB * srcA + dstRGB * (1 - srcA)
という意味だね
乗算済みアルファは、この srcRGB * srcA の部分が事前に処理済みのものを言うんだ
srcRGB' = srcRGB * srcA
これを以下の形でアルファブレンディングするよ
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
dstRGB' = srcRGB' + dstRGB * (1 - srcA)
これだけだ
作り方といってもRGBそれぞれにあらかじめAを乗算しておくだけ
処理時間が許すならglTexImage2Dでテクスチャをロードする直前にやったって構わないし、
そんなところで時間食うのが嫌ならあらかじめ乗算済みのものをファイルとして保存しておけばいいよ
0701デフォルトの名無しさん
2011/05/14(土) 11:32:33.70ありがとう、なんか分かりやすい
なるほどロード時に変換するのでもとりあえず困らないよね
こんだけでバイリニアのサブピクセル処理がうまくいくってのは、計算が分かってもなんか不思議だなあ
ところで何か気をつけることあります?テクスチャ以外でも、たとえば頂点カラーの付け方が違うとか
0702デフォルトの名無しさん
2011/05/14(土) 11:43:34.950703デフォルトの名無しさん
2011/05/14(土) 12:28:51.20乗算済みアルファの要点ってこんな感じ?
やり方
・テクスチャの各ピクセルをあらかじめ R*=A, G*=A, B*=A に変換しておく
・ブレンド関数は glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA) にする
メリット
・バイリニア補間時に黒いフリンジが出ない
・描画がちょっと速い
デメリット
・頂点カラーや定数カラー、セカンダリカラー等も乗算済みアルファで設定する必要がある
・テクスチャは不可逆変換なので編集ワークフローへは戻せない(R/=A, G/=A, B/=A でも一部のRGB情報は失われる)
0704デフォルトの名無しさん
2011/05/14(土) 14:21:32.91速いかどうかは知らない、ハードウェアのやることだし同じかもしれない、実環境で測って確かめてみて
俺的には元絵はPhotoshopかなんかでレイヤーとか使って作業してるだろうからpng化した時点で不可逆だと思うよ
あとはそんな感じだと思うよ
0705デフォルトの名無しさん
2011/05/15(日) 03:58:03.18>>698
ありがとう!
確かに透過色黒だったので適当な色にして試してみます!
それでもダメだった場合は premultiplied ぐぐります。
また質問するかもなのでその時は宜しくお願い致します。
0706デフォルトの名無しさん
2011/05/15(日) 14:33:00.19GoogleEarthとかで出来てるからなんかやり方あるんだろうけど、何もせずに置くと描画のたびにボタンがチラついてまう。
0707デフォルトの名無しさん
2011/05/15(日) 18:15:43.02OpenGLのクライアント領域にボタンおいてもチラつくのは普通。
GEは描画領域とそれ以外の領域に分けてるからできてるんじゃない?使ってないからどの画面を指してるかわからないけど・・・
MFCの上に領域きめて描画とか、.NETでやるならOpenTK入れるとか。
0708デフォルトの名無しさん
2011/05/16(月) 19:35:46.35右上の拡大縮小とか方位設定のコントロールの事ね。
http://nullpo.vip2ch.com/ga2473.png
ステンシルバッファで試してみるかあ・・・。
0709デフォルトの名無しさん
2011/05/16(月) 20:52:15.08GoogleEarth をインストールしてないから単なる予想だが、
これってボタン類も OpenGL で描画してるだけとちゃうの?
たとえば、Spy++ でちゃんとウィンドウ ハンドル取れる?
0710デフォルトの名無しさん
2011/05/16(月) 22:51:57.080711デフォルトの名無しさん
2011/05/16(月) 23:38:48.73平面にマップチップを隙間なく敷き詰めたいんだけどウィンドウのサイズによって
隙間があきますどうすれば隙間なくマップチップを描画できますか?
0712デフォルトの名無しさん
2011/05/17(火) 00:16:09.270713デフォルトの名無しさん
2011/05/17(火) 04:40:51.56それコントロールするUI自体がOpenGLで描画してると思うの。フォームでボタンとかじゃなくて。
0714デフォルトの名無しさん
2011/05/18(水) 01:52:23.06イベント逐一拾って処理すればそれで出来るだろうけど、組み込みじゃあるまいしそんなスマートじゃないことしてるんかなあ?
OpenGL描画領域にボタンを置くと、表示がちらつくだけであって、ボタン自体が見えなくなったり、ボタンが押せなくなるわけじゃあない。
なので、UI領域の描画とOpenGLによる描画が衝突してるだけで、UI領域をOpenGLに描画させないようにすれば
なんとかなるんじゃないかなあ、と思ったんだよね。
0715デフォルトの名無しさん
2011/05/18(水) 02:04:14.100716デフォルトの名無しさん
2011/05/18(水) 04:03:24.95これのほうがよっぽどスマートじゃないと思ったわけだが
そもそも一般的にGLやDirectXの描画領域にフォームのUI置いたりしない。
0717デフォルトの名無しさん
2011/05/18(水) 07:10:23.900718デフォルトの名無しさん
2011/05/18(水) 08:03:29.07そういう話じゃない?
0719デフォルトの名無しさん
2011/05/18(水) 14:34:18.120720デフォルトの名無しさん
2011/05/18(水) 16:38:06.39例えばglutで
LRESULT CALLBACK testFunc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp)
{
switch(msg) {
case WM_LBUTTONUP:
break;
}
return CallWindowProc(WCDefButtonProc , hwnd , msg , wp , lp);
}
...
glutCreateWindow(WINDOWTITLE);
HWND hWnd = FindWindow(0,WINDOWTITLE);
HINSTANCE hInst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
HWND hTESTButton = CreateWindow("BUTTON", "color",WS_CHILD | WS_VISIBLE,250,250, 50,24, hWnd,0, hInst, NULL);
WCDefButtonProc = (WNDPROC)GetWindowLong(hTESTButton , GWL_WNDPROC);
SetWindowLong(hTESTButton , GWL_WNDPROC , (LONG)testFunc);
みたいにしてみたらXPでもチラつかなかったけどダメかな
0721デフォルトの名無しさん
2011/05/18(水) 21:38:29.16自前制御の方がよっぽどスマートだと思うけど最近の人は考え方違うの?
0722デフォルトの名無しさん
2011/05/18(水) 22:37:30.580723デフォルトの名無しさん
2011/05/19(木) 01:17:12.29>714がカスタマイズしたボタンを使いたいって話ではないでしょ。
0724デフォルトの名無しさん
2011/05/21(土) 11:07:28.430.5とか足さないとダメ?
0725デフォルトの名無しさん
2011/05/21(土) 16:24:55.990726デフォルトの名無しさん
2011/05/21(土) 17:53:31.79glTranslatef (0.375, 0.375, 0.00);
0b0.011?
英語読めなくて根拠わからん・・・
http://www.opengl.org/resources/faq/technical/transformations.htm
0727デフォルトの名無しさん
2011/05/21(土) 18:31:31.17っていってた希ガス
0728デフォルトの名無しさん
2011/05/21(土) 19:50:18.36そうなのか なんという・・
グラボのバグでずれたりしません様に
0729デフォルトの名無しさん
2011/05/22(日) 03:12:19.230730デフォルトの名無しさん
2011/05/25(水) 01:32:20.78今シェーダーを使ってワンメッシュスキンアニメーションを表示させるプログラムを作ったのですが
パイプライン処理のみでやりたいのですが可能でしょうか?
glBeginからglEndの間でGL_MODELVIEWを変化させたいのですが出来ないようです.
普通はどうやっているのか,何かAPIがあれば教えてください
よろしくお願いします.
0731デフォルトの名無しさん
2011/05/25(水) 01:49:17.900732デフォルトの名無しさん
2011/05/25(水) 01:49:36.35スキンメッシュアニメーションなんて固有の都合をやってくれるAPIなんて
当然ある訳無いってのと、個人の都合で書く処理だから普通は、なんて定石みたいな物も無いんだが、
例えば1例で言えば GLSL でattribute として必要な行列(ボーンとか)と、描画するそのサブセットの頂点分並べた
行列のインデクスでも渡して、VertexShaderで計算して、とかになるんじゃないの?
さもなきゃ変形しない面とする面を分けて、変形はしないけど回転する面群の分は、glMultMatrix で回転して
単純にVBOで描画、変形する面は頂点位置を計算して描画、みたいにするんじゃね
あくまで俺がやってる例で、ただの1例だけど
0733デフォルトの名無しさん
2011/05/25(水) 01:55:15.06頂点データを弄る感じでしょうか,やってみます.
>>732
>例えば1例で言えば GLSL でattribute として必要な行列(ボーンとか)と、描画するそのサブセットの頂点分並べた
>行列のインデクスでも渡して、VertexShaderで計算して、とかになるんじゃないの?
多分今やってるのがこれだと思います.
>さもなきゃ変形しない面とする面を分けて、変形はしないけど回転する面群の分は、glMultMatrix で回転して
>単純にVBOで描画、変形する面は頂点位置を計算して描画、みたいにするんじゃね
なるほど参考になりました.
ありがとうございました.
0734デフォルトの名無しさん
2011/05/25(水) 03:01:34.27スキニング用の固定機能APIはあるから
0735デフォルトの名無しさん
2011/05/25(水) 03:03:58.00良ければ詳しく教えてください
0736デフォルトの名無しさん
2011/05/25(水) 08:52:36.87使ったこと無いけどあれ動くの?
0737デフォルトの名無しさん
2011/05/25(水) 09:04:31.37どれ?
0738デフォルトの名無しさん
2011/05/25(水) 09:44:44.41ってやつはES専用なのかすまんかった
0739デフォルトの名無しさん
2011/05/25(水) 15:16:27.40uniform mat4 uBoneMatrix[];
GLES20.glUniformMatrix4fv(_uBoneMatrixHandle, 1, false, _testMatrix, 0);
private float[][] _testMatrix =
{
{1,0,0,0, 0,1,0,0, 0,0,1,0, 0,-100,0,1},
{1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1},
};
としたいのですが、glUniformMatrix4fvに配列(複数の行列)が渡せず、1行列のみ「_testMatrix[0]」などとしなければうまくいきません。
どうやれば配列のMatrixが扱えるでしょうか?
スマートフォンのAndroidでOpenGL ES 2.0です。
0740デフォルトの名無しさん
2011/05/25(水) 22:24:09.58[2][]
[16][]
[][2]
どれかならいけると思う
どっちだっけな
0741デフォルトの名無しさん
2011/05/25(水) 23:33:20.39lineはglPolygonOffsetがきかないようですが
どうすれば解決しますか?
少しずらすは、チラツキが無くなるところまでやろうとすると
結構ずらしているのがわかってしまいました。
0742デフォルトの名無しさん
2011/05/26(木) 13:44:03.03だめならシェーダでちょっとずらせ
0743デフォルトの名無しさん
2011/05/26(木) 14:32:25.09それが効くのはポリゴンをラインモードで描画した時だけだと思う。
純粋なラインをglBegin(GL_LINE_STRIP)あたりで描画したときは効果ないはず。
http://www.opengl.org/resources/faq/technical/polygonoffset.htm
っていうかラインって本当にちらつくか???
何か勘違いしてないか。
0744デフォルトの名無しさん
2011/05/26(木) 16:22:38.45どれも駄目みたいです。
0745デフォルトの名無しさん
2011/05/26(木) 16:27:11.47OpenGL ES 1.1の拡張機能で「glDrawTexfOES」という関数があったのですが、
そういう感じで3Dの座標でなく、2Dの画面の座標で描画できないでしょうか?
0746デフォルトの名無しさん
2011/05/26(木) 16:40:30.39それらの頂点にたいしてテクスチャのUVをしていまします。
0747デフォルトの名無しさん
2011/05/26(木) 18:35:13.640748デフォルトの名無しさん
2011/05/26(木) 18:42:08.130749デフォルトの名無しさん
2011/05/26(木) 23:30:38.31ちらつきますね。
色が違うとはっきり出ます。
仕方ないので現状は
2度書きの部分をlineWidthで太くしてごまかしてます。
0750デフォルトの名無しさん
2011/05/26(木) 23:46:50.50動かさなければチラつかないし、動かしたら重なることはないと思うが。
どうもお前の言っていることは信用できない
0751デフォルトの名無しさん
2011/05/26(木) 23:57:51.360752デフォルトの名無しさん
2011/05/27(金) 00:19:22.01カメラの方を動かしてます。
信用できないってのが良くわかりませんが・・・。
0753デフォルトの名無しさん
2011/05/27(金) 00:20:17.130754デフォルトの名無しさん
2011/05/27(金) 00:23:34.990755デフォルトの名無しさん
2011/05/27(金) 00:27:02.070756デフォルトの名無しさん
2011/05/27(金) 00:52:14.83glBegin( GL_LINES );
glColor3f( 1.0f,0.0f,0.0f );
glVertexi( 0,0,0);
glVertexi( 1,0,0);
glColor3f( 0.0f,1.0f,0.0f );
glVertexi( 0,0,0);
glVertexi( 1,0,0);
glEnd()
0757デフォルトの名無しさん
2011/05/27(金) 00:57:46.63GLFloatの精度で足りなくてというか各種誤差が原因でオブジェクトとかカメラ動かすと
服と肌のZが微妙な関係になって乳首が見えちゃうやつ
0758デフォルトの名無しさん
2011/05/27(金) 01:06:11.49俺のモデルはCGソフト上では全裸があるが、自作アプリケーション向けに書き出す版では全部切除してる
お前にだけは乳首を見せないい
0759デフォルトの名無しさん
2011/05/27(金) 05:34:31.38同じ頂点からなる線を、同じ行列で変換すれば、たとえ丸め誤差があっても同じ位置になるはずだぞ。
ちらつく原因は何?
0760デフォルトの名無しさん
2011/05/27(金) 18:17:55.56OpenGL(固定機能)で2D描画するときって、まず
平行投影にして、原点が画面左上の角になるようにしたら
glRotatef( 90.0f, 1.0f, 0.0f, 0.0f );でY軸を逆さまにして、
そして三角形×2=四角形にテクスチャ貼って画像を描画
て感じが普通なんだろうか。
0761デフォルトの名無しさん
2011/05/27(金) 19:07:06.35もうちょいプリミティブナ関数があったとおもたよ。
多分初心者向けのチュートリアルで2D座標を直接指定して3角形各サンプルあるっしょ。
あれをちょっと応用するだけで大丈夫。
0762デフォルトの名無しさん
2011/05/27(金) 19:54:29.68それからひっくり返しもしない
0763デフォルトの名無しさん
2011/05/27(金) 20:44:14.19多分zfightingだと思います。
ポリゴンの上にエッジを描画するとちらつきますが
それはPolygonOffsetで回避できました。
0764デフォルトの名無しさん
2011/05/27(金) 21:00:56.82glutWireTeapot(2);
glColor3f(1,0,0);
glutWireTeapot(2);
回転させようが、カメラを動かそうが、全くチラつきませんが
0765デフォルトの名無しさん
2011/05/27(金) 21:24:55.00彼がソースを公開するかきちんと自分のやっていることを説明しないと話が進まない
0766デフォルトの名無しさん
2011/05/27(金) 23:07:17.670767デフォルトの名無しさん
2011/05/28(土) 19:20:38.03uniform mat4 boneMatrices[ボーン数];
のようにして各行列を必要な分だけ送り込みたいのですが、
この行列の配列は、例えば 100個とか送り込んでも問題無いでしょうか
(n個が限界、みたいな既定はあるでしょうか)
0768デフォルトの名無しさん
2011/05/28(土) 19:58:55.670770デフォルトの名無しさん
2011/05/28(土) 20:41:19.610771767
2011/05/28(土) 20:44:58.08既定値でMAXいくつ、って訳じゃないって事ですね。
もうちょっと素直に言えよこの野郎。ありがとう。
0772デフォルトの名無しさん
2011/05/28(土) 20:55:24.790773デフォルトの名無しさん
2011/05/29(日) 20:58:37.28Android+NDKでOpenGLを使っています。
glDrawArraysで四角形を描画しているのですが、テクスチャを貼り付けた上で頂点カラーを変えるのは何か設定が必要なのでしょうか。
glColorPointer( 4, GL_FLOAT, 0, vertexColor ); // vertexColorに4頂点のRGBA(=floatが16個分)が設定済み
glEnableClientState( GL_COLOR_ARRAY );
0774773
2011/05/29(日) 21:00:37.80glEnable( GL_TEXTURE_2D ); を使用するとテクスチャは貼られても頂点カラーは変わらず
glDisable( GL_TEXTURE_2D ); を使用するとテクスチャは貼られないが頂点カラーは設定通り
ブレンドは
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
という感じで設定しています。
0775773
2011/05/29(日) 21:02:39.89テクスチャの有無で頂点カラーが反映されるかどうかが変わるのは
何か設定が抜けているものかと予想しているのですが、そもそも出来なかったりするのでしょうか。
(忍法帳がゴタゴタしてて、1レスにまとめられず分割で失礼しました)
0776デフォルトの名無しさん
2011/05/29(日) 21:14:47.61つーかシェーダ使えよ
0777773
2011/05/29(日) 21:36:11.58ありがとうございます。
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
を入れてやることで期待通りのカラーで表示されました。
0778デフォルトの名無しさん
2011/05/30(月) 09:56:55.86どこかでREPLACEに変えたのか?
0779デフォルトの名無しさん
2011/05/30(月) 18:43:14.370780デフォルトの名無しさん
2011/05/30(月) 20:37:53.88解説が載っているようなサイトはあったりしますか?
検索したらGLUTとかがいっぱい引っかかって
イマイチいい感じのが見つかりませんでした。
よろしくおねがいします。
0781デフォルトの名無しさん
2011/05/30(月) 21:06:35.30自分で作るなら、まずは検索しないで作ってみれば
0782デフォルトの名無しさん
2011/05/30(月) 21:21:24.54http://bellard.org/TinyGL/
これとか参考になると思うよぉ〜
0783デフォルトの名無しさん
2011/05/30(月) 22:49:02.20ざっと見た感じ全体的にOpenGLの勉強に
やさしい構成になってますね。
ただプリミティブとかは余り記述されてなかったように思えます。
spin.cとかぐらいですかね・・・。
とりあえずもう少し読み進めてみます。
0784デフォルトの名無しさん
2011/05/30(月) 23:00:08.750785デフォルトの名無しさん
2011/05/30(月) 23:03:03.190786デフォルトの名無しさん
2011/05/30(月) 23:18:11.46こんな事改め言うのもなんだけど、立方体や球は何で出来てるか、くらいは知ってるだろ?
頂点があって、それらで面を形成してるだけだ。
そして頂点には位置があり、面には向きなんかもあって、これらの組み合わせだろ?
そしていくつの頂点が集まったら最小の面になるか、四角形は三角形の組み合わせ、三角形から頂点一つ取ったら
線分にしかならない。 だから最小は三角形で、差し当たりそこに目星が付くだろ?
という事は、頂点は n個の配列からなり、そして 「どの頂点群をして、面とするか」 は、
なんらかの方法で伝えないといけないだろ? その方法はいくつかのアプローチがあるが、結局どの手段使っても
これらを伝えないと形状にならない事はわかるだろ? って、ここまでは、
実際に三次元CGとか目にしていて、そして cube や sphere を目にしているなら、
特に誰から教えてもらわなくても想像できるだろ? 後はこれらの仮定を実際に形にする関数群が分かれば良いだけ。
プリフィクス "gl" が付いた、なんちゃらプリミティブ、みたいな関数があるはずだと想像。 俺はすぐここまで想像した。
そして大抵の人は普通、そのくらい出来る。 人からのこぴぺじゃなくて頭働かせろ
0787デフォルトの名無しさん
2011/05/30(月) 23:36:19.30多分、見本のプリミティブはGL_STRIPとかで描いてるんだろうなと思って
探してました。
自分でやろうとすると中々うまくいかなくて
考え方が間違ってるのかなと思い色々探してました。
自分でも何を聞こうとしているのかがあいまいで
質問の仕方が悪かったと思います。
すみません。
0788デフォルトの名無しさん
2011/05/30(月) 23:58:14.93今巷でホットなのは球や立方体のようなシンプルなものから
ノイズ、フラクタル等の複雑な形状までGPUでRaymarchingでレンダリングする事だ!
もう頂点をちまちま指定してラスタライズするような古臭い方法なんて流行んねーんだよ。
ここでも読んでみんなで勉強しようぜ。
http://pouet.net/topic.php?which=7920&com=25&which=7920&com=25&page=1&x=24&y=7
Raymarchingを使えばこんなクールなプログラムをたったの4kバイトで作れちゃうんだぜ!
http://pouet.net/prod.php?which=56866
http://pouet.net/prod.php?which=52938
http://pouet.net/prod.php?which=55758
http://pouet.net/prod.php?which=50068
http://pouet.net/prod.php?which=51074
でも良い子の初心者はちゃんとラスタライザとしてのOpenGLを勉強しようね(´・ω・`)
0789デフォルトの名無しさん
2011/05/31(火) 00:15:54.260790デフォルトの名無しさん
2011/05/31(火) 07:33:02.63レイトレなんてどうでもいいからハードウェア(リアルタイム)AOまだー?
あと点光源を10000個ぐらい処理できるハード作って
0791デフォルトの名無しさん
2011/06/01(水) 04:05:59.82glBeginが許されるのは小学生までですよね。
固定機能でレンダリングしてるロートルなチュートリアルばかりで困る。
0792デフォルトの名無しさん
2011/06/01(水) 07:25:02.69その結果、さくっとVBOで実装テスト → 実装まで半日でいけました
0793デフォルトの名無しさん
2011/06/01(水) 08:12:51.24まだ書きかけみたいだけど。
http://www.arcsynthesis.org/gltut/
0794デフォルトの名無しさん
2011/06/01(水) 08:15:52.690795デフォルトの名無しさん
2011/06/01(水) 08:24:13.240796デフォルトの名無しさん
2011/06/01(水) 19:06:39.77やっぱ固定機能なしだと、OpenGL入門が
リアルタイムCG技術入門みたいな内容になっちゃうんだな。
0797デフォルトの名無しさん
2011/06/01(水) 19:09:00.39固定機能をもっと充実させて欲しい。
誰か俺にGPUの作り方を教えろ。
0798デフォルトの名無しさん
2011/06/01(水) 19:21:18.940799デフォルトの名無しさん
2011/06/01(水) 19:23:12.69たぶん。
0800デフォルトの名無しさん
2011/06/01(水) 19:50:19.700801デフォルトの名無しさん
2011/06/01(水) 19:56:41.64VBOはOpenGL1.5で導入。GeForceFXとかRadeon9X00とかの時代。
相当古いマシンじゃない限り対応してると思う。
0802デフォルトの名無しさん
2011/06/01(水) 20:17:57.45DLL添付めんどいから頂点配列でいいか・・・
0803デフォルトの名無しさん
2011/06/01(水) 20:42:35.46真空管をいっぱい繋げたら宇宙になるんだろ?
0804デフォルトの名無しさん
2011/06/01(水) 22:42:15.28三行で説明してくれませんか。
0805デフォルトの名無しさん
2011/06/01(水) 23:12:50.20VBO, IBO, PBO, UBO, FBO, TBO, あとなんかあったっけ。
0806デフォルトの名無しさん
2011/06/01(水) 23:30:22.19http://www.opengl.org/documentation/specs/
を読めば
わかるよ。
>>805
バッファオブジェクト系は一つのバッファをVBO, IBO, PBO,(以下略)として使えるから
いろいろ面白い事ができるんだよね。
シェーダオブジェクト, プログラムオブジェクト, テクスチャオブジェクトとかのなんちゃらオブジェクトも加えるとさらに多くなるな。
でも慣れればなんとかなるレベルではないだろうか。
0807デフォルトの名無しさん
2011/06/01(水) 23:55:03.34Vertex Buffer Object?
Index Buffer Object?
Pixel Buffer Object?
Uniform Buffer Object?
Frame Buffer Object?
Texture Buffer Object?
でいいのかなぁ?
0808デフォルトの名無しさん
2011/06/02(木) 11:13:48.76どれも glGenBuffers で作れるからコード上は同じでは
0809デフォルトの名無しさん
2011/06/02(木) 15:02:33.850810デフォルトの名無しさん
2011/06/02(木) 18:01:11.07gluPerspectiveとかglLightとかを使うのは時代遅れのやりかたで、
全部(シェーダとかで)自分で計算するのが新しいやり方という理解でいいですか?
0811デフォルトの名無しさん
2011/06/02(木) 18:28:20.41まあそういうこと。
座標変換は、変換行列を自作してシェーダに入力して、シェーダで頂点位置と掛けて出力。
ライティングしたいなら、例えばPhong Shadingとかをシェーダで実装する。
計算式とかを学びながら一歩ずつやっていけばそんなに難しいことじゃないよ。
ちなみに、OpenGL3.xは互換プロファイルで過去の機能も使えるけど、DirectX10以降はこれやらないと何も表示できない。
0812デフォルトの名無しさん
2011/06/02(木) 18:59:06.28ありがとう。雰囲気がだいたい分かりました。
今さら古いやりかたを学ぶのは嫌なので新しい方法に切り替えて挑戦してみます。
0813デフォルトの名無しさん
2011/06/02(木) 19:42:06.15射影変換→ビュー変換→モデル変換→基本的ライティング→基本的テクスチャリング
の流れで1つずつ行列作ったりシェーダ書いたりして進んでいくと良いよ。
0814デフォルトの名無しさん
2011/06/02(木) 20:26:33.06データ読み込みスレッドでデータをロードしたとしても、OpenGLはスレッドセーフじゃないから、
最終的に描画スレッドでglBufferDataとかを呼ばなきゃならないですよね。
0815デフォルトの名無しさん
2011/06/02(木) 20:42:44.030816デフォルトの名無しさん
2011/06/02(木) 20:52:11.15俺の方法(OpenGLでもDirectXでも)だけど、
起こしたスレッド側でデータロード
→ 予めスレッド側に渡しておいたコールバック関数で進捗報告 → カウントさせる
それはそれとして、timerfunc で呼び出す描画処理ルーチンは、↑のカウントをいつも見ている
それに従って単に描画。 こんな感じ
0817デフォルトの名無しさん
2011/06/02(木) 21:33:20.90キューにデータが送られてきたらOpenGL命令でGPUへ転送ってのがシンプルな気がする。
だけどC/C++でやるのは手間かかるか。Java/C#/Pythonとかなら標準ライブラリに同期キューあるんだけど。
0818デフォルトの名無しさん
2011/06/02(木) 21:37:37.31>だけどC/C++でやるのは手間かかるか
全然。
俺はいつも boost::thread、boost::mutex 使うから楽勝。C#、Javaよりドシンプル
0819デフォルトの名無しさん
2011/06/02(木) 21:54:56.88教養ないから知らなかったわ。マルチスレッディング界では常識なのか。
0820デフォルトの名無しさん
2011/06/02(木) 23:06:00.730821デフォルトの名無しさん
2011/06/02(木) 23:52:14.960822デフォルトの名無しさん
2011/06/03(金) 00:48:21.170823デフォルトの名無しさん
2011/06/03(金) 01:02:19.440824デフォルトの名無しさん
2011/06/03(金) 01:56:19.050825デフォルトの名無しさん
2011/06/03(金) 16:09:21.77スマホが比率 横2/縦3に合わせると画像の収縮で画像が横長になった
り縦長になったりします。
この場合、もと画像の比率を調整して2のべき乗と近いサイズで作る
しか方法はないのでしょうか?
Androidスレで質問しましたが、こちらのほうがよさそうなので転記します。
0826デフォルトの名無しさん
2011/06/03(金) 16:27:20.060827825
2011/06/03(金) 16:30:05.44端末ごとに使えたり使えなかったりすると困るので
使えても使わないです。
0828デフォルトの名無しさん
2011/06/03(金) 16:36:25.76>使えても使わないです
それならば
>もと画像の比率を調整して2のべき乗と近いサイズで作る
>しか方法はないのでしょうか?
この質問出ない気がするが
自前でbitmapデータをtransform するとか、予めそのような画像用意するしか無くね
0829デフォルトの名無しさん
2011/06/03(金) 16:41:13.96非正方形テクスチャが使えないなら、正方形のテクスチャ用意するしかないよ。
width' = int(2 ** Math.ceil(Math.log(width, 2)))
height' = int(2 ** Math.ceil(Math.log(height, 2)))
なサイズの画像の左上に元画像をいったん転写して描画。
0830デフォルトの名無しさん
2011/06/03(金) 16:45:06.000831デフォルトの名無しさん
2011/06/03(金) 16:49:44.52男は黙って2の階乗。
0832デフォルトの名無しさん
2011/06/03(金) 16:53:25.78総画素4pixelで何を表現するの?
0833デフォルトの名無しさん
2011/06/03(金) 16:58:30.96適切なUV設定して描画するしかないわな。
0834825
2011/06/03(金) 18:16:44.352のべき乗であれば正方形じゃなくても大丈夫ではない
でしょうか?
>>830
ES2.0対応の端末ばかりだとよいのですが・・。
>>833
今その方法で検討中です。
0835825
2011/06/03(金) 18:19:44.74なるほど!返答の意味がわかりました。
2のべき乗の画像を用意して転写して、端末から見える領域を
指定するということですね。
0837829
2011/06/03(金) 19:37:11.57実際は、OpenGL ES2.0 のAPIを直接叩くものなんだね。こりゃ楽しめそうだ。
0838デフォルトの名無しさん
2011/06/03(金) 19:56:42.79あれ解決したのかな。
0839デフォルトの名無しさん
2011/06/03(金) 23:31:34.260840デフォルトの名無しさん
2011/06/03(金) 23:33:23.05http://sites.google.com/site/eamanonanahatimihona/openglfuncs
0841デフォルトの名無しさん
2011/06/04(土) 00:33:14.85種類別に分類するとなお良い。
0842デフォルトの名無しさん
2011/06/04(土) 03:05:04.87一番手前にみえるようになると思ったんだんだけど最初に書いたものが手前になる気がする
そういうルールなんですか?
0843デフォルトの名無しさん
2011/06/04(土) 03:16:31.49Zテストの通過条件は glDepthFunc(func) で変更できる。
引数funcは、GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, GL_ALWAYS のどれか。
初期値はGL_LESSなので、既に描いてあるものよりもさらに手前じゃないとZテストを通過しない。
GL_LEQUAL (less and equal) にすれば同じZ値でも通過するので、お前さんが意図してた挙動になる。
0844デフォルトの名無しさん
2011/06/04(土) 03:23:26.70どっかでglEnable(GL_DEPTH_TEST)ってやってる気がする
DEPTH_TESTやめちゃえば最後優先になる
0845デフォルトの名無しさん
2011/06/04(土) 03:23:27.540846デフォルトの名無しさん
2011/06/04(土) 03:34:39.490847デフォルトの名無しさん
2011/06/04(土) 03:39:03.46デプスなファンクもあったんだ・・・なるほど覚えておきます
>>844
エスパーきたこれ 3D描画やったときの初期化関数コピって入ってた・・・
0848デフォルトの名無しさん
2011/06/04(土) 03:42:46.510849デフォルトの名無しさん
2011/06/04(土) 15:56:47.280850デフォルトの名無しさん
2011/06/04(土) 17:22:08.88これは非常に乙。
次スレ、テンプレに入れるべき。
0851デフォルトの名無しさん
2011/06/04(土) 18:31:08.35と同じじゃないの?
0852デフォルトの名無しさん
2011/06/04(土) 19:47:24.98サマリーが付いてると便利かなと思って。あと固定機能が邪魔だったから。
0853デフォルトの名無しさん
2011/06/04(土) 20:33:38.59を読み込む機能、あるいはそのようなライブラリが第3者によって
提供されているのでしょうか?DirectXのように。
0854デフォルトの名無しさん
2011/06/04(土) 20:37:22.080855デフォルトの名無しさん
2011/06/04(土) 20:43:12.720856デフォルトの名無しさん
2011/06/04(土) 21:12:12.910857デフォルトの名無しさん
2011/06/04(土) 21:13:58.96俺もそうだけど、大抵は自前で書いたのずっと使ってたりするんじゃないの?
特殊な用件でもなければ、書く内容は決まってる訳だし
ファイルフォーマットがそれぞれ各人の都合でバラバラで、
安直に 「これだけでおk」 みたいなのはあり得ないから、そんな訳でみんな自前で1度は書くと思う
0858デフォルトの名無しさん
2011/06/04(土) 21:25:02.030859デフォルトの名無しさん
2011/06/04(土) 21:32:50.66そんな者あったら、その第三者の都合に沿った物しか作れないじゃん
0860デフォルトの名無しさん
2011/06/04(土) 22:39:42.78有名な規格としてはCOLLADAってのがある。MayaとかBlenderで吐ける。
俺は使ったことないので詳細は知らん。
http://codezine.jp/article/detail/843
0861デフォルトの名無しさん
2011/06/04(土) 23:45:18.76最終的には効率のよい独自形式に変換したほうがいい。
0862デフォルトの名無しさん
2011/06/05(日) 00:22:54.46まさにこれ。
例えば DirectX だって、D3DXMESH とかデモ書く時くらいしか使わないのと同じこと
0863デフォルトの名無しさん
2011/06/05(日) 06:46:56.24glDrawArrays (VBO) で描画するときにはちゃんとポリゴンがワイヤフレームで表示されるんだけど、
glDrawElements (VBO+IBO) で描画するときは一切何も表示されなくなる。
これって仕様? それともドライバのバグ? 誰か検証してくれるとうれしい。
0864863
2011/06/05(日) 08:29:58.96ドライバかグラフィックボードの問題のようです。
0865デフォルトの名無しさん
2011/06/05(日) 11:23:09.660866デフォルトの名無しさん
2011/06/05(日) 12:26:10.710867デフォルトの名無しさん
2011/06/05(日) 12:30:43.62オレオレ。
OpenGL気に入らないからM3G作った。
LinuxとAndroidで動く。公開してるけどユーザーは(俺以外)居ない。
Android ABC 2011どうすべ。出すか出さないか...
0868デフォルトの名無しさん
2011/06/05(日) 14:05:09.68多分OpenGLerの半分は似たような事してんじゃね?
0869デフォルトの名無しさん
2011/06/05(日) 14:27:47.070870デフォルトの名無しさん
2011/06/05(日) 19:58:10.30どのようにすれば簡単に EGL_CONTEXT_LOST を起こせるでしょうか?
複数の OpenGL アプリを同時動かしてもプロセスがキルされてメインメモリが先にが消えるのですが。
0871デフォルトの名無しさん
2011/06/05(日) 23:19:39.630872デフォルトの名無しさん
2011/06/06(月) 09:38:29.86そのまま使用できています。
0873デフォルトの名無しさん
2011/06/06(月) 20:07:29.86> Version Support
> Version 1.20 Y
> Version 1.30 Y
ってあるけど、仕様書には 1.3 以降と書いてあり、実際 1.2 では動かない。
公式サイトのドキュメントなのになんで間違うかな。
0874デフォルトの名無しさん
2011/06/07(火) 01:05:13.530875デフォルトの名無しさん
2011/06/07(火) 01:13:37.040876デフォルトの名無しさん
2011/06/08(水) 00:14:21.410877デフォルトの名無しさん
2011/06/08(水) 00:24:10.30あるいは誤差か
0878デフォルトの名無しさん
2011/06/08(水) 07:43:45.200879デフォルトの名無しさん
2011/06/08(水) 07:57:03.440880デフォルトの名無しさん
2011/06/08(水) 10:07:53.71いでしょうか?
"GL_OES_mapbuffer" に対応していることが分かっているときに glMapBufferOES のアドレスを得るために以下
のようにしたのですが NULL が返ってきました。これを呼び出すスレッドにはカレント EGL コンテキストが
設定されています。
void* handle = dlopen("/system/lib/libEGL.so", RTLD_LAZY);
PFNEGLGETPROCADDRESSPROC GetProcAddress = (PFNEGLGETPROCADDRESSPROC)dlsym(handle, "eglGetProcAddress");
PFNGLMAPBUFFEROESPROC MapBuffer = (PFNGLMAPBUFFEROESPROC)GetProcAddress("glMapBufferOES");
0881デフォルトの名無しさん
2011/06/08(水) 23:01:07.33本当にOpenGLさわったことあんのか?って奴も多いけどなw
0882デフォルトの名無しさん
2011/06/08(水) 23:38:20.670883デフォルトの名無しさん
2011/06/08(水) 23:51:44.50ソースを。
0884デフォルトの名無しさん
2011/06/09(木) 00:37:52.01glOrtho(0, 固定幅, 0, 固定高さ, 0, 1);
で例えば赤と青の市松模様のテクスチャの青の部分を貼っといて
Windowのサイズをぱこぱこ変えるとサイズによって赤い部分が0.5ピクセルくらい表示されることあるね
0885デフォルトの名無しさん
2011/06/09(木) 00:48:09.230886デフォルトの名無しさん
2011/06/09(木) 00:52:46.500.5とかシフトしないと1ピクセルの線が綺麗に出なかったりする
0887デフォルトの名無しさん
2011/06/09(木) 00:57:25.54いやいやGL_NEARESTでなるん
0888デフォルトの名無しさん
2011/06/09(木) 01:00:45.660889デフォルトの名無しさん
2011/06/09(木) 01:10:25.470.375を入れろと紙(赤本)は言っている。
0890デフォルトの名無しさん
2011/06/09(木) 08:57:49.770.5って言う定数じゃなくて、ビューポートのサイズに合わせて計算するのが正しいんだろうね、MSの実装を見た感じだと。
0891デフォルトの名無しさん
2011/06/09(木) 09:07:20.340892デフォルトの名無しさん
2011/06/09(木) 22:06:55.290893デフォルトの名無しさん
2011/06/09(木) 22:22:36.740894デフォルトの名無しさん
2011/06/10(金) 18:58:40.03どうやって綺麗にテクスチャ貼ってるんだろうか。
0895デフォルトの名無しさん
2011/06/10(金) 20:50:56.290896デフォルトの名無しさん
2011/06/10(金) 21:01:54.05http://www.youtube.com/watch?v=E4Fbk52Mk1w
こういう奴のことを言った。ウインドウ一枚一枚がポリゴンに貼られたテクスチャになってる。
0897デフォルトの名無しさん
2011/06/10(金) 21:13:52.71ぐは。そういう事かスマン
それ、例えばWindowsなら現在のウィンドウのDCから
Bitmapイメージ取れるから、それをリアルタイムでテクスチャとして渡してるんだろうなって
普通に思った。 win32としてWindow領域のBitmapデータ
OpenGLとして動的変更テクスチャ。 そんな連携
0898デフォルトの名無しさん
2011/06/10(金) 21:43:22.09Windowsも、今はこうやってポリゴンにウインドウ貼って描画してるんだよね。
ここまで派手なエフェクトは実装されてないけど。
0899デフォルトの名無しさん
2011/06/13(月) 02:33:39.44ラスタライザで perspective-correction するのにビュー座標系でのz座標の情報が必要になると思うのですが、
クリップ座標系のw座標を使っているという理解でOKですか?
0900デフォルトの名無しさん
2011/06/13(月) 17:53:14.36たしかそう。
Vertex Shaderの次でw除算されるけど、そのときに実はwの値を保持していて、
パースペクティブコレクションに利用する。んじゃなかったかな。
0901デフォルトの名無しさん
2011/06/14(火) 21:15:07.16なんで名前付けがこんなにいい加減なのか。
0902デフォルトの名無しさん
2011/06/15(水) 08:36:45.32混乱に拍車をかけるぜ
0903デフォルトの名無しさん
2011/06/15(水) 08:39:27.18本当にどうしようもない。
0904デフォルトの名無しさん
2011/06/15(水) 08:45:24.40とりあえずそれについて言うなら、単にそれ専用じゃないからじゃね
単に配列バッファを 「Vertex Buffer Objectとして」 使ってるだけだから
なので、>>901 についてだけなら、別にいい加減とは言えない。見方が違う
0905デフォルトの名無しさん
2011/06/15(水) 10:06:26.87DirectXとは比べたくないが、あっちは確かInputLayoutっていうまともな名前だし。
0906デフォルトの名無しさん
2011/06/15(水) 10:50:07.470907デフォルトの名無しさん
2011/06/15(水) 14:26:05.290908デフォルトの名無しさん
2011/06/15(水) 22:10:45.66ポインタじゃねぇのかよ・・・。
0909デフォルトの名無しさん
2011/06/16(木) 21:39:50.22そういう用途は普通ポインタじゃなくてハンドル(ID)形式にするだろ
常識的に考えてww さもなきゃ P-Implポインタみたいにするだろうけど、そこまで冗長にする必要無いし
要はこういう実装
#define HANDLE unsigned int;
std::vector<なにか> g_list;
HANDLE glCreate(いろいろ) {
// コードイメージ
g_list.push_back(なにか(いろいろ));
return (HANDLE)g_list.size()-1;
}
void glほげほげ(HANDLE id) {
なにか *p = g_list[id];
// 略
}
0910デフォルトの名無しさん
2011/06/17(金) 01:30:55.69多分論点はそこじゃないと思う。
0911デフォルトの名無しさん
2011/06/17(金) 07:14:14.690912デフォルトの名無しさん
2011/06/18(土) 14:25:46.010913デフォルトの名無しさん
2011/06/19(日) 10:05:14.86* Android (ES1.x, ES2.0)
* iPhone/iPad (ES1.x, ES2.0)
* PlayStation Vita (ES2.0)
* Nintendo 3DS (ES1.1+拡張)
* WebGL (ES2.0)
* Wii (OpenGL風API)
* Wii U (わからん)
0914デフォルトの名無しさん
2011/06/19(日) 12:26:39.340915デフォルトの名無しさん
2011/06/19(日) 13:23:50.91OpenGL3.x+ATI&AMD独自拡張相当かと
0916デフォルトの名無しさん
2011/06/19(日) 13:49:27.420917デフォルトの名無しさん
2011/06/19(日) 19:16:41.370918デフォルトの名無しさん
2011/06/19(日) 21:42:20.740919デフォルトの名無しさん
2011/06/19(日) 23:01:58.670920デフォルトの名無しさん
2011/06/19(日) 23:10:21.690921デフォルトの名無しさん
2011/06/20(月) 14:34:51.84同じOpenGLの古バージョンにしてほしくないような
0922デフォルトの名無しさん
2011/06/20(月) 21:51:32.53OpenGL3, 4あたりの話題が少ないような気がする。
そこらへんの機能を使っている人はちゃんとOpenGLの仕様書とか読んでいる人で
質問する事もないのかもしれないが。
0923デフォルトの名無しさん
2011/06/20(月) 23:41:20.210924デフォルトの名無しさん
2011/06/21(火) 00:55:24.300925デフォルトの名無しさん
2011/06/21(火) 01:11:38.96どう考えてもOpenGL3や4をバリバリ使っている人がいるとは思えない。
OpenGLはこのまま衰退してく斜陽API
0926デフォルトの名無しさん
2011/06/21(火) 01:21:10.67まぁPCのみに限るならそこまで伸びてないだろうけど。
ただ、DirectXにしろOpenGLにしろそろそろラスタライズベースの3DCGがあと数年でレイトレとかに代わられそうな気がするから、そうなれば激変すぎて新しいAPIの登場、
もしくはOpenCLとかに取り込まれたりするのかな。
0927デフォルトの名無しさん
2011/06/21(火) 01:35:58.54せいぜい数十個単位で命令が増えるぐらいだろ。
0928デフォルトの名無しさん
2011/06/21(火) 07:46:48.71このへんを参考に自作のプログラムにGLSLシェーダを実装したのですが、
外部ファイルであるシェーダを更新したときに、GLSLのシェーダも更新するにはどうすればよいですか?
プログラム自体を再起動させれば更新されますが・・・
0929デフォルトの名無しさん
2011/06/21(火) 10:44:31.880930デフォルトの名無しさん
2011/06/21(火) 12:26:52.96単に上のDeleteして元のプロセスを繰り返せばよかったのですね
ありがとうございました
0931デフォルトの名無しさん
2011/06/23(木) 10:56:05.81画面タッチイベントでどんどん画像を切り替える画面で
タッチをかなりの速度で行うと、画像の読込が追いつかないのか
テクスチャが表示されなかったりします。
マップオブジェクトでテクスチャIDの再利用などを行って
同じテクスチャを読ませないなどの工夫をしているのですが、
処理がバックグラウンドにいくとロード済テクスチャが消えたりするので
随時読み込むようにしています。
タッチイベントが続くと何度も読み込むので、読込速度を
早くする対応をしていますが、限界があります。
画像の質にこだわりたいのでこれ以上読込速度は改善できません。
その場合、タッチイベントが複数会発生した場合の
速度を下げてテクスチャを読み込む時間を確保してあげるのが
得策でしょうか?できれば一般的にどうしているかという点が聞きたいです。
0932デフォルトの名無しさん
2011/06/23(木) 18:15:19.300933デフォルトの名無しさん
2011/06/23(木) 18:23:42.230934デフォルトの名無しさん
2011/06/23(木) 18:56:42.360935デフォルトの名無しさん
2011/06/23(木) 18:56:45.150936デフォルトの名無しさん
2011/06/23(木) 18:57:55.750937デフォルトの名無しさん
2011/06/23(木) 19:13:53.84やっぱファイル解析から始めないとダメ?
0938デフォルトの名無しさん
2011/06/23(木) 19:37:56.120939デフォルトの名無しさん
2011/06/23(木) 19:57:28.730940デフォルトの名無しさん
2011/06/23(木) 20:02:56.320941デフォルトの名無しさん
2011/06/23(木) 20:17:16.58メタセコでモデリング→blendで諸々設定にしてるんだけど
解析をわざわざ勉強してまでblend読み込みやった方が良いと思う?
0942デフォルトの名無しさん
2011/06/23(木) 22:23:21.89俺 Blender ユーザだけど、blend ファイルを直接読んでもメリット薄いから
普通に Python で書いた Exporter で欲しい情報吐かせてる。
言い方変えると自前フォーマットとも言うが。 内容はメッシュとボーンとマテリアルとテクスチャと、あとモーション
0943デフォルトの名無しさん
2011/06/23(木) 22:50:05.77あり
Pythonか……
やってみう
0944デフォルトの名無しさん
2011/06/24(金) 01:00:06.74ファイル読み込みなんて面倒な事を考えなくて済むのに。
プログラミング好きなら、モデリングソフトと格闘するよりプロシージャルにやる方が楽しいのに。
趣味プログラムならそれでいいけど、実社会ではそうはいかないよね。
世知辛い世の中だよ・・・
0945デフォルトの名無しさん
2011/06/24(金) 01:02:49.98それ考えた事ある。テクスチャについてはレンガ模様をロジックで作った。
モデルに関しては、天球とかビル街の遠景は作るが、人体はロジック練ってる途中であと忘れてた
0946デフォルトの名無しさん
2011/06/24(金) 01:40:02.30趣味でいいなら随分前から研究はされている。
0947デフォルトの名無しさん
2011/06/24(金) 09:33:52.93あそこはテクスチャーなどという軟派な事はしていない。
0948デフォルトの名無しさん
2011/06/24(金) 19:07:40.01表現のテクスチャはプログラムで作っちゃうなあ。
こないだやった仕事でもプログラムでやっちゃった。
0949938
2011/06/24(金) 19:29:14.42メタセコ無料版はなぜかobj吐けないんだ・・・
で、わざわざ変換させるのも面倒だったのでmqoで読んでるorz
0950デフォルトの名無しさん
2011/06/24(金) 20:10:26.580951デフォルトの名無しさん
2011/06/24(金) 21:46:15.600952デフォルトの名無しさん
2011/06/24(金) 22:58:58.72OpenGLプログラミングガイド買おうか悩んでるんですが
やっぱり英語版でも最新版無理して買ったほうがいいんですかね?
実際バージョン3〜4って必要なのかよくわかりません。
ただ古いと推奨されてない関数なんかもあるみたいで悩みます
ここで必読とされてるのは
プログラミングガイド 原著第5版
なんで最新の機能とかあんまり使われてる感じでもないんですが…
0953デフォルトの名無しさん
2011/06/24(金) 23:40:35.130954デフォルトの名無しさん
2011/06/24(金) 23:48:41.63メタセコ無料版でモデリング → 3DAceでmqoをロード → そのまま objでもなんでも書き出し
これでおk。3DAce についてはググれ
0955デフォルトの名無しさん
2011/06/24(金) 23:58:08.48熟読はしないですね
辞書的な使い方をしたいと思ってます
私ぐらいのレベルならネットで調べれば十分かもしれませんが、
日本語の情報がネットでは少ないと感じたので
体系的な本が一冊あればと思いました
0956デフォルトの名無しさん
2011/06/25(土) 00:00:19.370957デフォルトの名無しさん
2011/06/25(土) 00:16:14.83たしかに持っていたい(買いたい)のも大きいですね
でも「もっと簡単な方法があるかもしれん」とか
「ネットで調べまわるより時間が節約できる」
とかも思っています
個人的にはバージョン2でも問題ないのかな思っていますが、
3Dプログラミングをバリバリやっている方は
どう思っているのか気になりました。
0958デフォルトの名無しさん
2011/06/25(土) 00:20:02.34しかし慣れるとリファレンスとしては公式の関数リファレンスの方が便利だし読まなくなるのでまずは図書館とか探してみるのをおすすめする
GL2以前の古い機能は使わないようにしたいというなら、GLES2の情報を調べてみるのはどうだろう
GLES2の本も最近は多いだろうし古い関数は省かれてるから、デスクトップのOpenGLでも参考になる
0959デフォルトの名無しさん
2011/06/25(土) 00:23:02.13・Amazonとかで取り寄せようにも、知りたいポイントが書かれているかどうかがわからない本は買えない
・週末まで待つくらいなら、夜中や昼飯時に調べて実験した方が早い
・いくつかの情報照らし合わせて実験して、ヘッダ覗いてテスト書いて…
結局買わなかった。 とりあえずやりたい事をさくっと実現出来てるのでOKだが、単純にリファレンスなら欲しいかもしれない
0960デフォルトの名無しさん
2011/06/25(土) 00:30:06.89ありがとうございます
すみません…公式の関数リファレンスとはネットの情報ってことでしょうか?
古い機能は使わないようにしたいというわけではありません。
ドライバ?グラフィックボード?なんかで今後ある程度サポートされるなら
別に古い機能でもいいと思っています
0961デフォルトの名無しさん
2011/06/25(土) 00:36:45.690962デフォルトの名無しさん
2011/06/25(土) 00:41:58.64ネットで検索したら日本語でも十分ってことでしょうか?
私も今の時点では、やりたいことはできています
2枚重ねるような、なんちゃってオーバーレイもなんとかできました
ただ本当にこれでいいのかなって疑問が消えないだけなんです
でも買わなくてもある程度できそうですね
0963デフォルトの名無しさん
2011/06/25(土) 00:55:15.60十分かどうかはその人の要求次第だから聞かれてもなんとも言えない。
ただ、「本当にこれでいいのかって疑問が消えない」 感じは別に悪い感覚じゃないから、
それを晴らすために何か手に取るのは良い事じゃね
俺はとりあえず、BlenderからExportしたキャラクターをリアルタイムでアニメーションさせて
ウォークスルーの延長が出来れば良かっただけさ。 あとGLSLとか
0964デフォルトの名無しさん
2011/06/25(土) 01:14:10.60専門で3Dをやるわけではないので、要求は高くないです
学ぶんなら最新でなくてもいいという意見もあるので
高すぎるのがネックですが
OpenGLプログラミングガイド 原著第5版
を検討したいと思います
古本でも12000円ぐらいするのは
まだまだ需要があるんでしょうね…
0965デフォルトの名無しさん
2011/06/25(土) 01:14:59.420966デフォルトの名無しさん
2011/06/25(土) 01:21:45.19色々試しつつ海外のフォーラムで質問したりとかしてるうちにある程度は使えるようになった。
中高生レベルの英語でもあればちゃんと推敲すれば海外のフォーラムでも答えてもらえる。
0967デフォルトの名無しさん
2011/06/25(土) 01:46:52.39やっぱり日本語情報少ないって感じるんですね
正直、3D興味なかったころでもDirectXとかOpenGLなんかは
よく目にしててよっぽど情報あるんだなと勘違いしてました
英語のサイトも見に行きますが
ソース見て雰囲気だけ分かった気になるのが
ちょっと怖いです…動けばいいんですけどね
0968デフォルトの名無しさん
2011/06/25(土) 02:46:28.53ビジネスチャンス!!
>>964
3Dで何をやるのかな?
簡単に3Dなプログラムを作りたいという程度なら直接OpenGL使うより
OpenSceneGraphとかUDKとかの有名なライブラリ、ゲームエンジン等を使った方が楽だよ。
OpenGLはライブラリではなくて、
様々なGPUの機能を共通したインターフェースで扱えるようにするための仕様に過ぎない。
最新ハードの性能を最大限に引き出したクールな4k intro作りたいとかなら
OpenGLの仕様書(無料)をダウンロードして勉強すべし!
0969デフォルトの名無しさん
2011/06/25(土) 09:10:23.24OpenGLのサイトが増えるのは大歓迎。
0970デフォルトの名無しさん
2011/06/25(土) 11:25:52.41やりたい事は3Dモデルをフレームバッファにレンダリングして画像として保存するだけ、画面上に表示は行いません
0971デフォルトの名無しさん
2011/06/25(土) 11:34:31.56CUI上でバックグラウンドレンダリングしたいって話?
OpenGLって、最終的にグラフィクスボードへ描画指示をする関数群と
その周辺の関数群になるわけだけど、そんな奴に対して、
「描画系の関数に描画させずに結果だけ欲しい」 って話にならないかそれ
…GLUT使わないでGL関数だけにしたら、行けるのかな? 確認しないとわからないが
0972デフォルトの名無しさん
2011/06/25(土) 11:37:44.44ソフトウェアで各種計算をして最終的に描画結果を得る訳で、
そっちのイメージを持ってるのだとすると、そもそもレイヤが違う。
OpenGLやDirectXが担当するのは、その手のソフトで言うなら編集作業の方の画面だから
0973デフォルトの名無しさん
2011/06/25(土) 11:38:20.210974970
2011/06/25(土) 11:46:01.99>CUI上でバックグラウンドレンダリングしたいって話?
その通りです
>>973
そのコンテキストを作成する方法を教えて頂けますか?
今はglxCreateContextでコンテキストを作成しています
0975デフォルトの名無しさん
2011/06/25(土) 14:30:04.460976デフォルトの名無しさん
2011/06/25(土) 15:13:14.22とか言って
0977デフォルトの名無しさん
2011/06/25(土) 15:42:41.89新興OSでもMesaが使えるように任意のメモリ領域をカラーバッファとして使えるようにするオプションがあった気がする。
MesaのMakefileにそういうオプションの説明があったような気がする。
でもオフラインレンダリングしたいなら、オフラインレンダリング用のライブラリを探して使ったほうが
簡単に綺麗な画像が得られるんでないだろうか。(pov-rayとか?)
どうしてもOpenGLを使わないといけないというわけでないなら、そういうのも考えてみたら?
0978970
2011/06/25(土) 16:43:25.76なるほど
精度より速度が重要だったのでOpenGLを検討していましたが、
そういうライブラリも検討してみます
ところで >>973 のようなxglにもwglにも依存しないコンテキストは
簡単に作成出来るのでしょうか?
0979デフォルトの名無しさん
2011/06/25(土) 17:44:11.83おそらくコマンドラインでもで動くと思います。
egl の場合はコンテキストとサーフェスが切り離されているのでウィンドウなしで pbuffer サーフェスを作成できます。
0980デフォルトの名無しさん
2011/06/26(日) 04:05:36.63これですな http://www.mesa3d.org/osmesa.html
glx 経由でなくても直接コンテキストを作れる
ハードウェアアクセラレートできるかどうかは知らん
0981デフォルトの名無しさん
2011/06/26(日) 20:21:54.62http://www.caramel-box.com/products/uhourenka/eventcg.html
何をどうすればこういう画像を3Dで作れるでしょうか?
ラブプラスとかではない1ランク上の3D画像を模索しています。
0982デフォルトの名無しさん
2011/06/26(日) 20:26:21.40・トゥーンシェーダをひと通り調べる
・余力があれば周辺の論文を読んでみる
実践
・3DCGソフトで試行錯誤して自分の理想のレンダリングを作る
・ブレイクダウンしてシェーダにする
0983デフォルトの名無しさん
2011/06/26(日) 20:35:23.910984デフォルトの名無しさん
2011/06/26(日) 20:35:26.110985デフォルトの名無しさん
2011/06/26(日) 20:37:44.360986デフォルトの名無しさん
2011/06/26(日) 21:45:52.60一番重要なのはテクスチャーだと思うけど。
0987デフォルトの名無しさん
2011/06/26(日) 22:09:47.660988デフォルトの名無しさん
2011/06/26(日) 23:22:52.540990デフォルトの名無しさん
2011/06/27(月) 22:07:39.410991デフォルトの名無しさん
2011/06/27(月) 22:12:14.780992デフォルトの名無しさん
2011/06/27(月) 22:13:06.210993デフォルトの名無しさん
2011/06/27(月) 22:13:32.520994デフォルトの名無しさん
2011/06/27(月) 22:13:58.510995デフォルトの名無しさん
2011/06/27(月) 22:14:21.390996デフォルトの名無しさん
2011/06/27(月) 22:27:42.630997デフォルトの名無しさん
2011/06/27(月) 22:34:27.010998デフォルトの名無しさん
2011/06/27(月) 22:36:24.800999デフォルトの名無しさん
2011/06/27(月) 22:55:33.69OpenGLスレ Part16
http://hibari.2ch.net/test/read.cgi/tech/1309182662/
1000デフォルトの名無しさん
2011/06/27(月) 23:00:11.4710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。