OpenGL
■ このスレッドは過去ログ倉庫に格納されています
0001あ
01/11/15 23:34ID:GvgJsycj0427名前は開発中のものです。
2010/10/19(火) 01:25:52ID:oaFptFkS0428名前は開発中のものです。
2010/10/19(火) 01:27:59ID:btVvg1A/0429名前は開発中のものです。
2010/10/19(火) 01:35:45ID:bYPOdN96Youtubeで公開してくれたら尊敬いたします
0430名前は開発中のものです。
2010/10/19(火) 01:46:31ID:oaFptFkS0431名前は開発中のものです。
2010/10/19(火) 02:23:13ID:bYPOdN96実現できたらノウハウで稼げるでしょう
0432名前は開発中のものです。
2010/10/19(火) 02:39:13ID:bYPOdN96できるのであれば作って欲しい
0433名前は開発中のものです。
2010/10/19(火) 02:49:49ID:btVvg1A/0434名前は開発中のものです。
2010/10/20(水) 21:13:22ID:ZbIayp1d鏡面反射のこと?w
0435名前は開発中のものです。
2010/10/20(水) 21:34:12ID:TppCkdud理解できないカスは、まさかいないよな?
0436名前は開発中のものです。
2010/10/20(水) 22:12:21ID:ZbIayp1dそれによって難しさも変わる。
外側が鏡張りの家もミラーハウスだし
鏡をいっぱい置いてある家もミラーハウスって呼ぶよ?
抽象的な名称じゃなく具体的な仕組みを提示してほしい。
自分の中の言葉の持つ意味が世界中で通用するはずだとか思ってないよね?w
0437名前は開発中のものです。
2010/10/20(水) 22:36:07ID:6/9F7sRd0438名前は開発中のものです。
2010/10/20(水) 22:49:13ID:TppCkdud全部壁が鏡でできた3Dダンジョンと考えろ珍滓君
0439名前は開発中のものです。
2010/10/20(水) 23:55:44ID:tkC0BrWQ0440名前は開発中のものです。
2010/10/21(木) 00:05:39ID:06kWh39Fまた難癖()笑の付けやすい稚拙な文を書くww
0441名前は開発中のものです。
2010/10/21(木) 00:46:14ID:SvJvabf1実装なんて難しくもなんともない。
実用的な処理速度になるかどうかは別問題。
0442名前は開発中のものです。
2010/10/21(木) 01:04:09ID:zHYDOwSO0443名前は開発中のものです。
2010/10/21(木) 01:25:56ID:RUyYzJpp>実装なんて難しくもなんともない。
ならやってみせたら?
0444名前は開発中のものです。
2010/10/21(木) 03:54:22ID:SvJvabf1>>430 と同じ疑問が沸くw
よほど暇で、気が向いたらやるかもしらんが。
0445名前は開発中のものです。
2010/10/21(木) 04:21:28ID:RUyYzJpp0446名前は開発中のものです。
2010/10/21(木) 05:18:53ID:SvJvabf1うちは反射面に視点を移動させてから
適当なバッファにシーンを書き出す>それをテクスチャに取り込む>必要に応じて反転させて反射面に貼り付け
という流れでやってるよ。
その他の反射材質(100%反射ではないもの)の場合は
虚実空間を作ってステンシルなんかで切り抜く手法をとるね。
上に出てるミラーハウスや合わせ鏡なんかもこの方法でやる。
単純な面じゃない鏡面(たとえば湾曲した鉄板とか磨かれた車のボディ)の場合はもう一工夫必要だけど
基本的に上の二つを何度も組み合わせてそれらしく見せるかな。
なので複雑な空間を構築するほどにレンダリング速度は下がるよ。
>>442
ぜひやり方を聞きたいw
0447名前は開発中のものです。
2010/10/21(木) 05:39:03ID:d26spTi4ミラーハウスは万華鏡のように無限に多重反射を繰り返すところが肝だから、
その古典的な手法で「何度も組み合わせてそれらしく見せる」のはかなり困難だと思うなあ。
0448名前は開発中のものです。
2010/10/21(木) 06:34:20ID:RUyYzJppその映像のミラーの部分をテクスチャとして使う
で出来るんじゃないかと
>>446と同じかな?
0449名前は開発中のものです。
2010/10/21(木) 06:35:57ID:RUyYzJpp限界あるよね
確かにシェーダーてどうやるんだ?
0450名前は開発中のものです。
2010/10/21(木) 08:32:31ID:SvJvabf1仮に鏡の中の虚空間が無限だったとしても人間の視力は無限じゃないからね
「無限に反射を繰り返す」と思い込みが、いかにもすごそうだと勘違いさせるだけで
実際に構築する虚空間は5回程度で十分それらしくみえるよ。
0451名前は開発中のものです。
2010/10/21(木) 08:51:34ID:Tb90fLMG0452名前は開発中のものです。
2010/10/21(木) 12:31:10ID:ztPOzFWh2回反射としても、2 * 4回くらいバッファ作ることになるんじゃないかと思うんだけど...
3回反射なら、さらに * 10くらい?
狭い室内だからってことで視野を広角にするとさらに大変に...
0453名前は開発中のものです。
2010/10/22(金) 05:11:54ID:d+rUZ45V0454名前は開発中のものです。
2010/10/23(土) 13:46:21ID:xgtuB2riできあがるのは全くの別物過ぎるだろ。消失点とか完全に逸脱するし。
結論、無理。
0455名前は開発中のものです。
2010/10/23(土) 14:37:37ID:MFcab25H鏡のモデルが単純だから解像度が低ければ数十回反射をトレースしてもそれなりに速度出るかも
0456名前は開発中のものです。
2010/10/23(土) 22:34:14ID:1FVe8j8v0457名前は開発中のものです。
2010/10/23(土) 23:45:57ID:8OT+k5jH0458名前は開発中のものです。
2010/10/23(土) 23:48:55ID:1FVe8j8v0459名前は開発中のものです。
2010/11/06(土) 21:33:39ID:zrF4soKuフラグメントシェーダやっていて、どうしても理解できない現象が出てこまっています。
シェーダプログラムは↓みたいな感じなのですが、どうも自分の視点と向かい合っている面が
明るくなってしまうのです…。
(一応、ライトを動かすことでも陰影の様子は変わりますが、ライトは動かさずに視点だけがが
動いてもフラグメントの色が変わってしまう状態です。)
宜しくお願いします。
varying vec3 position;
varying vec3 normal;
void main (void)
{
vec4 color;
// アンビエントは強制的に反映
color = gl_FrontMaterial.ambient * gl_LightSource[0].ambient;
// 法線とライトベクトルとのcosθの度合いだけディフューズが反映される。
vec3 fnormal = normalize(normal);
vec3 light = normalize(gl_LightSource[0].position.xyz - position);
float diffuse = dot(light, fnormal);
if( diffuse > 0.0 ){
color += gl_FrontMaterial.diffuse * gl_LightSource[0].diffuse * diffuse;
}
gl_FragColor = color;
}
0460名前は開発中のものです。
2010/11/06(土) 21:41:21ID:zrF4soKuvarying vec3 position;
varying vec3 normal;
void main(void)
{
position = vec3(gl_ModelViewMatrix * gl_Vertex);
normal = normalize(gl_NormalMatrix * gl_Normal);
gl_Position = ftransform();
}
0461名前は開発中のものです。
2010/11/10(水) 23:33:41ID:ly9oB2cYgl_NormalMatrixがビュー行列×モデル行列の逆転置行列になってない?
gl_Normalにモデル行列の逆転置行列を掛けて
フラグメントシェーダではワールド座標系でライティングを計算する
もしくは
gl_Normalにビュー行列×モデル行列の逆転置行列を掛けて
フラグメントシェーダではカメラ座標系でライティングを計算する
でうまくいくと思う。
0462名前は開発中のものです。
2010/11/16(火) 20:04:42ID:XHelgg19当人ではないけど、言っている意味がわからない。
positionおよびnormalはカメラ座標になってる。
元プログラムの何が問題なの?
0463名前は開発中のものです。
2010/11/17(水) 00:35:22ID:uq4sIxC5glLightでライトの位置を指定されたときにmodel-view matrixが掛けられるけど
毎回model-view matrixを変更した後にちゃんとライトの位置を設定している?
ライトの位置を設定するときにwに1を設定している?
>>426
ミラーハウスのプログラムと解説がプログラム板のメガデモスレッドにあるよ。
0464名前は開発中のものです。
2010/11/24(水) 05:01:50ID:rjbJ1VZwピクセルシェーダ-で統一しろ
0465名前は開発中のものです。
2010/11/24(水) 10:04:43ID:+MRqLLLoそれはともかく、計算対象がピクセルじゃなくフラグメントなんだから、フラグメントシェーダだろjk
0466名前は開発中のものです。
2010/11/24(水) 11:50:25ID:OsIDwll6まだピクセルじゃねーし。
0467名前は開発中のものです。
2010/11/24(水) 15:48:11ID:Lk7YwvPN使い勝手が良いライブラリなどありますでしょうか?
glutのサンプルがコンパイルエラーで使えなかったのですが・・
0468名前は開発中のものです。
2010/11/24(水) 23:23:41ID:OsIDwll6どうせ座標と法線程度が読めれば良いので参考にはならないかも。
0469名前は開発中のものです。
2010/11/25(木) 15:54:59ID:qyJvSo4Zどうも上手くいきません。
どなたか原因をご存知の方はいらっしゃいませんか?
1.CLRのDLLとしてglVertex3d()などの呼び出しを含んだdllを作成
2.CLRのDLL側に glu32.lib と opengl32.lib を追加の依存ファイルとしている
3.C#側で参照設定
4.C#側でこのクラスを構築。すると、
「アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。[続行]をクリック…。
ファイルまたはアセンブリ 'cppGL, Version=1.0.…, Culture=neutral, PublicKeyTOken=null' または
その依存関係の1つが読み込めませんでした。
間違ったフォーマットのプログラムを読み込もうとしました。」
というアプリケーションエラーが発生します。
宜しくお願いします。
0470名前は開発中のものです。
2010/11/25(木) 17:50:45ID:qyJvSo4Zひな形にしていたプロジェクトが古すぎてアセンブリのバージョンみたいなものが
食い違っていたようでした。
スレ汚しすんません
0471名前は開発中のものです。
2010/11/25(木) 23:09:51ID:f33OZCUlフラグメントシェーダはOpenGLの用語で
ピクセルシェーダはDirect3Dの用語。
結局どちらも同じものだけど。
こんなOpenGLとDirect3Dで同じ機能が違う用語で呼ばれているのがいろいろあるみたいだね。
Stream outputとtransform feedback
primary surfaceとframe buffer
とか。
0472名前は開発中のものです。
2010/12/02(木) 08:00:26ID:xAmMDOPK行列パレットの数を指定してメッシュを分割してくれるような
便利なヘルパー関数は、OpenGLのなにかのライブラリに
存在してますか?
自前で実装すると遅すぎて話にならないので困ります。
0473名前は開発中のものです。
2010/12/02(木) 09:28:45ID:zrxXra4tそんな便利な機能がOpenGLにあるわけなかろう
0474名前は開発中のものです。
2010/12/05(日) 10:47:45ID:gmW1u/Sd全部自前で実装してるって事か。
ってスキニングの段階で事前に分割しておけばいいのか。ワンスキンに
こだわることなかったな。
0475名前は開発中のものです。
2010/12/06(月) 18:43:40ID:o/iC03E/0476名前は開発中のものです。
2010/12/06(月) 23:08:33ID:Uk5Oqzicライブラリとか導入するの面倒くさいんだもんw
Win/Linux/MacOS(iOS)で使えて、導入が楽なライブラリがあるといいんだけど。
フレームワークに依存しないようなやつが欲しいなぁ。
0477名前は開発中のものです。
2010/12/09(木) 00:47:25ID:QsEvkvp9名付けてCloseGL
0478名前は開発中のものです。
2010/12/10(金) 13:39:10ID:5/5pUsYFただしカメラ座標で平行移動するのはなしで。
ワールド座標系で視線ベクトルと垂直なベクトルを計算して……
という方法以外の簡単な方法を探しています。
0479名前は開発中のものです。
2010/12/10(金) 22:34:20ID:HclmO53Kシーンを動かすなら2D,3Dでやり方が変わってくると思うよ。
0480名前は開発中のものです。
2010/12/10(金) 23:17:50ID:5/5pUsYF0481名前は開発中のものです。
2010/12/11(土) 23:45:17ID:zC44+pOK0483名前は開発中のものです。
2011/02/15(火) 23:44:31ID:lhGOZ74X赤本になんかそれらしい記述があったような気がする。
適当ですまん。
0484名前は開発中のものです。
2011/03/14(月) 02:32:09.54ID:jWhijRYxどなたか教えてもらえないでしょうか?
DirectXに慣れているので,
Idleのコールバックや描画のタイミングが制御できない点に手を焼いてしまっています.
参考になるサイトや書籍があれば教えていただけると助かります.
あと,板ポリゴンにテクスチャはった途端,描画に1秒近くかかり始めたのですが...
こっちはもうちょっと自分で追ってみます.
0485名前は開発中のものです。
2011/03/14(月) 04:01:14.19ID:2rIai5GaglutTimerFunc
glutPostRedisplay
あたりかな?
0488名前は開発中のものです。
2011/03/15(火) 07:10:59.81ID:Ox5XPTt50489名前は開発中のものです。
2011/03/15(火) 19:58:30.32ID:ARr//KuJ0490名前は開発中のものです。
2011/03/15(火) 20:14:36.57ID:VIqB4cIa俺も使ったことあるけど便利だったよ
glut使わない人は代わりにどうしてるの?
0491名前は開発中のものです。
2011/03/16(水) 02:24:04.33ID:DmTZktkB普通に自分で実装してますが。
0492名前は開発中のものです。
2011/03/16(水) 10:32:34.74ID:aH2PdT+SOpenSceneGraph イイヨー
0493名前は開発中のものです。
2011/03/20(日) 17:58:57.20ID:ZQXRHqtc0494名前は開発中のものです。
2011/03/20(日) 19:29:16.77ID:WUiplD3X0495名前は開発中のものです。
2011/04/03(日) 13:24:56.88ID:OFnDknpR0496名前は開発中のものです。
2011/04/06(水) 19:31:50.86ID:lH9yhOfN3Dに全く触れたことのない場合
どんな本がお勧めですか?
教えて頂ければ幸いです
0497名前は開発中のものです。
2011/04/06(水) 20:55:22.84ID:c6d/JfS90498名前は開発中のものです。
2011/04/06(水) 22:43:42.36ID:lH9yhOfN了解しました
また懐が寒くなる T T
0499名前は開発中のものです。
2011/09/15(木) 11:04:09.92ID:/QNlSHfO1パス目:位置、法線、マテリアルの各種係数などをテクスチャーに出力
2パス目:画面全体を覆う板ポリを上記のテクスチャーを使って描画
でいいんでしょうか? 2パス目の画面全体を覆う板ポリが怪しいのですが、これであってますよね?
0500名前は開発中のものです。
2011/09/16(金) 01:49:21.44ID:S97p5lIU0501499
2011/09/16(金) 08:01:36.28ID:/duHazH2結局計算量自体は1パスで計算するのと同じで、
マテリアル情報を出力する分コストが高い気がするのですが...
Zだけ先にレンダリングするのと比べて何がいいのでしょうか。
1パス目:Zだけレンダリング
2パス目:もう1回レンダリング
こっちの方が速い気がします。
0502名前は開発中のものです。
2011/09/16(金) 21:28:39.03ID:3ZrwjYRf0503499
2011/09/17(土) 08:17:43.47ID:Nsy1iM/Dライトのパラメーターを変えながらN枚の(同じ)板ポリを書いて加算合成するの?
結局遅延シェーディングの利点って速度よりも全体のパイプラインの見通しの良さと、シェーダーの分割にある気がする。
あと2Dのポストプロセスと相性がいい(なにせ最後は板ポリだ)。
プログラムにするとしたらこんな感じでしょうか。
class Material {
setGeometryShader (); // for 1st pass, z
setMaterialShader (); // for 1st pass, diffuse, specular
class Light {
setLightingShader (); // for 2nd pass
clss Scene {
setPostProcessShader (); // for 3rd pass
0504名前は開発中のものです。
2011/09/17(土) 08:22:18.99ID:Nsy1iM/Dせいぜい位置、法線、Diffuse係数、Specular係数だけなので
本当にこれで2nd passでレンダリングするのに十分かどうか。
テクスチャーはDiffuse係数に叩き込んでおくとしても
その他の特殊パラメーターを渡したくならないか...
0505名前は開発中のものです。
2011/10/29(土) 18:44:37.08ID:XqLp05zkやったことない人たちに聞いても無駄だよ。
とんちんかんなのに偉そうな答えが返ってくるだけ。
0506名前は開発中のものです。
2011/10/30(日) 00:58:41.18ID:mbqhyRUr0507名前は開発中のものです。
2011/10/30(日) 01:02:59.57ID:6JkyG2dX0508名前は開発中のものです。
2011/10/31(月) 18:11:22.94ID:Mc9sVXWSレベルが低すぎる
0509名前は開発中のものです。
2011/11/02(水) 15:01:11.92ID:DIUWRQyKレベル低いから?
0510名前は開発中のものです。
2011/11/02(水) 16:21:48.10ID:h3hNauls0511名前は開発中のものです。
2011/11/02(水) 17:08:14.47ID:+6Roq+an0512名前は開発中のものです。
2011/11/02(水) 18:58:20.98ID:+JZgiz4d0513名前は開発中のものです。
2011/11/03(木) 01:28:01.54ID:rcEv4bObiPhone とか android はどうなるんだよ。
カーマックにあやまれ!
0514名前は開発中のものです。
2011/11/03(木) 10:43:28.02ID:JY1aX4Or0515名前は開発中のものです。
2011/11/04(金) 21:03:04.35ID:3QmG73Z4同程度以上のグラフィックで、かつぬるぬる動くからやっぱり凄い技術だなと思った。
でもゲーム自体は古くさいお使いゲーでいまいちだった。
0516名前は開発中のものです。
2011/11/30(水) 20:26:54.82ID:BF4rR4Fr■ このスレッドは過去ログ倉庫に格納されています