OpenGL 2.0 専用スレ。
ここでは、OpenGL の猛者のみが生き残る―――
探検
OpenGL 2.0 専用スレ
2005/09/09(金) 21:25:59
537デフォルトの名無しさん
2007/02/04(日) 10:29:30 GLSLとCg、これからやるならどっちですか?
538デフォルトの名無しさん
2007/02/04(日) 10:47:18 nVidiaのカード以外で動かすならCgは事実上終わってる
でも将来CgがGLSLコードを吐く様になったら復活するかもしれない
でも将来CgがGLSLコードを吐く様になったら復活するかもしれない
539デフォルトの名無しさん
2007/02/05(月) 02:16:26 nVidiaのカード以外が終わってるから…
540デフォルトの名無しさん
2007/02/05(月) 09:11:30541デフォルトの名無しさん
2007/02/05(月) 09:12:11542デフォルトの名無しさん
2007/02/05(月) 12:37:36 >538
もう最新バージョンで吐けるから
>540
実行速度がほしいならDirect3Dやったほうがいい
もう最新バージョンで吐けるから
>540
実行速度がほしいならDirect3Dやったほうがいい
543デフォルトの名無しさん
2007/02/13(火) 11:27:44 お前らまだOpenGLなんか使ってんのかwwwww
544デフォルトの名無しさん
2007/02/13(火) 12:08:15 OpenGL処理遅いんだよ
545デフォルトの名無しさん
2007/02/13(火) 21:23:16546デフォルトの名無しさん
2007/02/14(水) 00:27:48 何てゲーム?
547デフォルトの名無しさん
2007/02/20(火) 12:20:20 APIは速度に殆ど関係ないと思うが・・・
組み方が悪いんだろ。
そもそも、最近はシェーダーで処理するのが一般的なんだから、APIがなんだとか全く関係ないw
組み方が悪いんだろ。
そもそも、最近はシェーダーで処理するのが一般的なんだから、APIがなんだとか全く関係ないw
548デフォルトの名無しさん
2007/02/21(水) 02:08:23 両方で組んでみろとは言わんからせめてAPIの仕様位は調べてから発言したほうがいいんじゃないかね
549デフォルトの名無しさん
2007/02/23(金) 11:37:42 ATIだと、
mat3 m3;
mat4 m4;
m3 = mat3( m4 );
エラーになりませんか?
(TT なんで〜〜
mat3 m3;
mat4 m4;
m3 = mat3( m4 );
エラーになりませんか?
(TT なんで〜〜
550デフォルトの名無しさん
2007/02/23(金) 15:11:50 GPUベンダがそれぞれGLSLコンパイラを書いてるからグラボを変えたらエラー吐くのはよくあること
551デフォルトの名無しさん
2007/02/23(金) 15:21:32 補足するとNVのコンパイラがGLSLの仕様より融通が利いてるだけで別にATIが悪いわけじゃないよ
552デフォルトの名無しさん
2007/02/23(金) 15:52:57 m3 = mat3( m4 ); ×
こうだ
m3 = mat3( m4[0].xyz, m4[1].xyz, m4[2].xyz ); ○
ttp://ati.amd.com/developer/gdc/gdc2003-gl2.pdf
には、
m3 = mat3( m4 );
ができると書いてあるけが、古い資料だから信用するな。
こうだ
m3 = mat3( m4[0].xyz, m4[1].xyz, m4[2].xyz ); ○
ttp://ati.amd.com/developer/gdc/gdc2003-gl2.pdf
には、
m3 = mat3( m4 );
ができると書いてあるけが、古い資料だから信用するな。
553デフォルトの名無しさん
2007/02/23(金) 16:03:59 >>551
NVのコンパイラなら float3 と書いてもエラー無く動くのは、笑った
NVのコンパイラなら float3 と書いてもエラー無く動くのは、笑った
554デフォルトの名無しさん
2007/02/23(金) 19:58:57 頼むからコンパイリンガーは
「自分がどういう最適化をしたのか」
というのを分かりやすく出力して欲しい。
何もエラー出さないから、
今後の参考にならない。
「自分がどういう最適化をしたのか」
というのを分かりやすく出力して欲しい。
何もエラー出さないから、
今後の参考にならない。
555デフォルトの名無しさん
2007/02/25(日) 09:27:38 コンパイリンガー?
556デフォルトの名無しさん
2007/02/28(水) 10:21:25 mat2x3 とか使えないけどなぜだろう。
わかる人いる?
わかる人いる?
557デフォルトの名無しさん
2007/02/28(水) 13:52:15558デフォルトの名無しさん
2007/03/03(土) 19:37:53 >>556
そもそもmat2x3みたいな行列ってどういう時に便利なの?
そもそもmat2x3みたいな行列ってどういう時に便利なの?
559デフォルトの名無しさん
2007/03/06(火) 17:18:47http://www.nag-j.co.jp/FortranBuilder.htm
Fortran BuilderのFortran 90/95ソースコードから、GLUTを使ったOpenGLのプログラミングを可能にします
http://www.nag-j.co.jp/FBUpdate.htm#GLUT
560デフォルトの名無しさん
2007/03/07(水) 00:17:28 OpenGLでビルボード処理したいんだけどプログラムはこんな感じ、
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable(GL_ALPHA_TEST);
glEnable(GL_BLEND);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 256, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, po->data);
//glTexImage2D(GL_TEXTURE_2D, 0, 4, nSizeX, nSizeY, 0, GL_RGBA, GL_UNSIGNED_BYTE, imageData);
glEnable(GL_TEXTURE_2D);
glBegin(GL_POLYGON);
glTexCoord2d(0.0, 0.0);
glVertex3d(-0.5, 0.0, 3.0);
glTexCoord2d(0.0, 1.0);
glVertex3d(-0.5, 0.5, 3.0);
glTexCoord2d(1.0, 1.0);
glVertex3d(0.0, 0.5, 3.0);
glTexCoord2d(1.0, 0.0);
glVertex3d(0.0, 0.0, 3.0);
glEnd();
glDisable(GL_TEXTURE_2D);
glDisable(GL_BLEND);
glDisable(GL_ALPHA_TEST);
これじゃだめなんだよね。
イメージも消えちゃう。イメージの背景は透明にしてイメージのみ残したいんだけど。
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable(GL_ALPHA_TEST);
glEnable(GL_BLEND);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 256, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, po->data);
//glTexImage2D(GL_TEXTURE_2D, 0, 4, nSizeX, nSizeY, 0, GL_RGBA, GL_UNSIGNED_BYTE, imageData);
glEnable(GL_TEXTURE_2D);
glBegin(GL_POLYGON);
glTexCoord2d(0.0, 0.0);
glVertex3d(-0.5, 0.0, 3.0);
glTexCoord2d(0.0, 1.0);
glVertex3d(-0.5, 0.5, 3.0);
glTexCoord2d(1.0, 1.0);
glVertex3d(0.0, 0.5, 3.0);
glTexCoord2d(1.0, 0.0);
glVertex3d(0.0, 0.0, 3.0);
glEnd();
glDisable(GL_TEXTURE_2D);
glDisable(GL_BLEND);
glDisable(GL_ALPHA_TEST);
これじゃだめなんだよね。
イメージも消えちゃう。イメージの背景は透明にしてイメージのみ残したいんだけど。
561デフォルトの名無しさん
2007/03/07(水) 00:31:31 2.0スレ向きの話題ではないな。
glTexEnvの仕様をググってinternalFormatとGL_TEXTURE_ENV_MODEの関係を
よく調べてから他のOpenGLスレへどうぞ。
glTexEnvの仕様をググってinternalFormatとGL_TEXTURE_ENV_MODEの関係を
よく調べてから他のOpenGLスレへどうぞ。
562デフォルトの名無しさん
2007/03/07(水) 13:14:01 >560
sage の使い方も覚えてね。
glTexImage2D 関数で RGB 設定でテクスチャデータを送ってるから、
テクスチャのアルファは、1.0 その設定では、
glEnable( GL_ALPHA_TEST );
の意味がない。
GL_ALPHA_TEST は、glAlphaFunc関数で、描画しないアルファ値を
設定できるが、ポリゴン全体が同じ値のアルファ値では意味がない。
GL_BLEND は、glBlendFunc関数で背景と色を重ねる設定ができる
ので、目的にあわせて設定を変える必要がある。
glTexEnvの設定は、ポリゴンとテクスチャの色を重ねる設定で、
そのままでも良い。
一番の問題は、テクスチャデータにアルファ値が無いことだよ。(^^;
次は、OpenGLスレ Part10 へ質問してください。
sage の使い方も覚えてね。
glTexImage2D 関数で RGB 設定でテクスチャデータを送ってるから、
テクスチャのアルファは、1.0 その設定では、
glEnable( GL_ALPHA_TEST );
の意味がない。
GL_ALPHA_TEST は、glAlphaFunc関数で、描画しないアルファ値を
設定できるが、ポリゴン全体が同じ値のアルファ値では意味がない。
GL_BLEND は、glBlendFunc関数で背景と色を重ねる設定ができる
ので、目的にあわせて設定を変える必要がある。
glTexEnvの設定は、ポリゴンとテクスチャの色を重ねる設定で、
そのままでも良い。
一番の問題は、テクスチャデータにアルファ値が無いことだよ。(^^;
次は、OpenGLスレ Part10 へ質問してください。
563デフォルトの名無しさん
2007/03/08(木) 04:30:11 >>560
GL2.0 でやろうとしているなら、TexEnvが FragmentShader なのは当然として、
AlphaTest の機能は FragmentShader 内で discard してもできるし、
もちろん AlphaTest を使ってもできる。
OpenGL-ES 2.0 だと AlphaTest 無いから、前者で実現するしかないけど。
GL2.0 でやろうとしているなら、TexEnvが FragmentShader なのは当然として、
AlphaTest の機能は FragmentShader 内で discard してもできるし、
もちろん AlphaTest を使ってもできる。
OpenGL-ES 2.0 だと AlphaTest 無いから、前者で実現するしかないけど。
564デフォルトの名無しさん
2007/03/14(水) 23:40:19 OpenMAXって最強じゃね?
565デフォルトの名無しさん
2007/03/14(水) 23:45:59 使える実装があればいいものだと思う。
それはOpenGL界隈全体に言えるけど。
てか誰かオープンソースでEGLの実装してくれ。
それはOpenGL界隈全体に言えるけど。
てか誰かオープンソースでEGLの実装してくれ。
566デフォルトの名無しさん
2007/03/25(日) 04:25:39 ARB_fragment_programって何も明示しないと最低でも24bit浮動小数点精度を要求される
これって標準で、D3DでいうところのPixelShader2.0ができるということでわ?????
D3DだとPS2.0からはFixedPoint精度シェーダを使用できないが
OpenGLだと明示すればhalfもFixedも使用できる点がゴイスー
これって標準で、D3DでいうところのPixelShader2.0ができるということでわ?????
D3DだとPS2.0からはFixedPoint精度シェーダを使用できないが
OpenGLだと明示すればhalfもFixedも使用できる点がゴイスー
567デフォルトの名無しさん
2007/05/30(水) 20:25:42 オラッ!
よしはら!
よしはら!
568デフォルトの名無しさん
2007/06/09(土) 17:38:36 マルチスレッドOpenGLってアップルも実装しているらしいけど実際に速いの?
569デフォルトの名無しさん
2007/08/06(月) 17:50:41 うん
570デフォルトの名無しさん
2007/08/08(水) 23:26:08 いやー実際参った
Fixed point を
修正された点
と直訳されたときは!!!!!
だから直訳組は嫌いなんだ!!!!
Fixed point を
修正された点
と直訳されたときは!!!!!
だから直訳組は嫌いなんだ!!!!
571デフォルトの名無しさん
2007/08/08(水) 23:39:52 直訳っつぅかなんつーか・・・
そのひとは固定小数点というものを知らないんだろうね。
Java のリファレンスなんかにもひどい訳語があるよ
ttp://java.sun.com/javase/ja/6/docs/ja/api/javax/sound/midi/Instrument.html
>計測を使用して音を出すには
意味わかんね
スレ違いすまそ
そのひとは固定小数点というものを知らないんだろうね。
Java のリファレンスなんかにもひどい訳語があるよ
ttp://java.sun.com/javase/ja/6/docs/ja/api/javax/sound/midi/Instrument.html
>計測を使用して音を出すには
意味わかんね
スレ違いすまそ
572デフォルトの名無しさん
2007/08/09(木) 00:03:24 fixを修正って意味で使ってんのはコンピュータ分野の一部分だけなんだよね
573デフォルトの名無しさん
2007/08/09(木) 00:20:52 >>572
手元の英英辞典では1番目の語義に
mend or correct something: to repair, mend, or correct something
って出てきたんですけど・・・
手元の英英辞典では1番目の語義に
mend or correct something: to repair, mend, or correct something
って出てきたんですけど・・・
574デフォルトの名無しさん
2007/08/09(木) 00:32:14 >>573
572が言いたかったのは、「コンピュータ分野の一部分」じゃなくて
「コンピュータ分野では一部分」って意味なんじゃなかろうか
でも個人的な感覚では、「修正」の意味の方が頻度高い気もするけど
ていうか fixed point くらい(この分野の)常識として訳して欲しいよね
floating point は一体どう訳したんだろう?
572が言いたかったのは、「コンピュータ分野の一部分」じゃなくて
「コンピュータ分野では一部分」って意味なんじゃなかろうか
でも個人的な感覚では、「修正」の意味の方が頻度高い気もするけど
ていうか fixed point くらい(この分野の)常識として訳して欲しいよね
floating point は一体どう訳したんだろう?
575デフォルトの名無しさん
2007/08/09(木) 00:36:52 きっと 「浮いている点」
576デフォルトの名無しさん
2007/08/09(木) 00:37:07 揺れ動く点とかな
577デフォルトの名無しさん
2007/08/09(木) 17:09:31 > Fixed point を
> 修正された点
ワラタ
そんなの、海外サイトをふだんから見ない俺でもわかるのにw
> 修正された点
ワラタ
そんなの、海外サイトをふだんから見ない俺でもわかるのにw
578デフォルトの名無しさん
2007/08/10(金) 23:29:32本田大地
579デフォルトの名無しさん
2007/08/15(水) 10:27:58 OpenGL 3.0
580876
2007/08/15(水) 11:40:16 ちゃんとリンク張ってくれよ…
OpenGL公式
http://www.opengl.org/
Topic: OpenGL 3 announced
http://www.opengl.org/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic;f=3;t=015351;p=0
OpenGL公式
http://www.opengl.org/
Topic: OpenGL 3 announced
http://www.opengl.org/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic;f=3;t=015351;p=0
581デフォルトの名無しさん
2007/09/19(水) 06:09:37 とりあえず、救済AGEEE
582デフォルトの名無しさん
2007/10/21(日) 10:42:24 RapidMind やってみた、
GPGPUやるんだったら
Cg GLSLよりかなり組みやすいけど
速度的にどうなのかはまだ分からん
やってる人いる?
GPGPUやるんだったら
Cg GLSLよりかなり組みやすいけど
速度的にどうなのかはまだ分からん
やってる人いる?
583デフォルトの名無しさん
2007/10/21(日) 17:31:06 隔離スレで何言ってんだ
584デフォルトの名無しさん
2007/10/22(月) 10:18:42 え、隔離スレなの?
じゃあ、隔離じゃないのは?
じゃあ、隔離じゃないのは?
585デフォルトの名無しさん
2007/10/22(月) 20:42:52 ここ。
586デフォルトの名無しさん
2007/10/24(水) 01:04:22 当方Cgでシェーダーを組んでいるのですが、まだ手をつけたばかりで
シェーダーの初歩的なことを伺いたくて…他スレがあまりに過疎っているので
こちらで質問させてください。答えて頂けたら本当に助かります。
TEXCOORDについてなのですが
テクスチャ座標を指す、というのはわかったのですが
テクスチャ0や2などの番号がついたときにどこを指すのかわからなくて
float4 uv0 : TEXCOORD0;
float4 uv1 : TEXCOORD1;
float4 uv2 : TEXCOORD2
uniform sampler3D data // volume
uniform sampler2D back_buffer, // backface
uniform sampler1D TransferFunction, // transferfunc
この場合uv0〜uv2はどのsamplerを参照するのでしょうか?
Cgチュートリアルを見ていて、明示的にどれとどれが対応するのか、などが描いていなくて…
よろしくお願いします。
シェーダーの初歩的なことを伺いたくて…他スレがあまりに過疎っているので
こちらで質問させてください。答えて頂けたら本当に助かります。
TEXCOORDについてなのですが
テクスチャ座標を指す、というのはわかったのですが
テクスチャ0や2などの番号がついたときにどこを指すのかわからなくて
float4 uv0 : TEXCOORD0;
float4 uv1 : TEXCOORD1;
float4 uv2 : TEXCOORD2
uniform sampler3D data // volume
uniform sampler2D back_buffer, // backface
uniform sampler1D TransferFunction, // transferfunc
この場合uv0〜uv2はどのsamplerを参照するのでしょうか?
Cgチュートリアルを見ていて、明示的にどれとどれが対応するのか、などが描いていなくて…
よろしくお願いします。
587デフォルトの名無しさん
2007/10/24(水) 01:19:24 どれとどれを対応させてもいいし、テクスチャなんか参照せずに他の用途に使ってもいい
組み合わせは自由
すべては作るシェーダ次第
組み合わせは自由
すべては作るシェーダ次第
588デフォルトの名無しさん
2007/10/24(水) 01:22:43 すみません、もう少しわかりやすくお願いします…
対応させてもいい、とありますがどのように対応させるのでしょうか
対応させてもいい、とありますがどのように対応させるのでしょうか
589デフォルトの名無しさん
2007/10/24(水) 01:31:56 たとえば上記のように宣言して
float2 texc = ((uv2.xy / uv2.w) + 1) / 2;
とした場合、このtexcに何が入っているのかわからなくなってしまって。
言い忘れていましたがこれはフラグメントシェーダーで
vertexシェーダーの方では
float4 position : POSITION;
float4 color : COLOR;
float4 texCoord : TEXCOORD0;
をアウトプットしています。
float2 texc = ((uv2.xy / uv2.w) + 1) / 2;
とした場合、このtexcに何が入っているのかわからなくなってしまって。
言い忘れていましたがこれはフラグメントシェーダーで
vertexシェーダーの方では
float4 position : POSITION;
float4 color : COLOR;
float4 texCoord : TEXCOORD0;
をアウトプットしています。
590デフォルトの名無しさん
2007/10/24(水) 01:47:49 それは単に
((uv2.xy / uv2.w) + 1) / 2
の計算結果が入ってるだけで、どのテクスチャも読んでない
Cgあんまり詳しくないけどサンプル眺めてみた限り、テクスチャを読み込んでる部分では tex2D とかの関数を呼んでると思う
((uv2.xy / uv2.w) + 1) / 2
の計算結果が入ってるだけで、どのテクスチャも読んでない
Cgあんまり詳しくないけどサンプル眺めてみた限り、テクスチャを読み込んでる部分では tex2D とかの関数を呼んでると思う
591デフォルトの名無しさん
2007/10/24(水) 02:11:07 元にしたソースを見ていましたら
vertexシェーダー から fragmentシェーダーへ値を>>589の値を送っているというのがわかりました。
float2 texc = ((uv2.xy / uv2.w) + 1) / 2; には vertexから送られてきたuv2の2Dテクスチャ座標が入っていました。
確認なのですが、vertexで抜けてきたものをフラグメントでは扱う、ということですよね。
なんとかまとまってきました。
ただ、それでもvertexシェーダーで、uniformもしていないのにtexcoord0とかが呼ばれたときに
それが何を指しているのかがわからない…
すみません…混乱しすぎて。睡魔も着てしまってわけがわからなくなっています。
セマンテックが何を表しているのか、図で説明してくれてるものがあればいいのですが。
OSITIONもCOLORも、画面の何を指しているのかわからないままサンプルいじくってるので…
vertexシェーダー から fragmentシェーダーへ値を>>589の値を送っているというのがわかりました。
float2 texc = ((uv2.xy / uv2.w) + 1) / 2; には vertexから送られてきたuv2の2Dテクスチャ座標が入っていました。
確認なのですが、vertexで抜けてきたものをフラグメントでは扱う、ということですよね。
なんとかまとまってきました。
ただ、それでもvertexシェーダーで、uniformもしていないのにtexcoord0とかが呼ばれたときに
それが何を指しているのかがわからない…
すみません…混乱しすぎて。睡魔も着てしまってわけがわからなくなっています。
セマンテックが何を表しているのか、図で説明してくれてるものがあればいいのですが。
OSITIONもCOLORも、画面の何を指しているのかわからないままサンプルいじくってるので…
592デフォルトの名無しさん
2007/10/24(水) 11:22:07 CgUsersManualちゃんと読めば書いてある
プロファイルにもよるが、OpenGLならarbvp1/arbfp1かvp40/fp40辺りだろうから
Appendix B Language Profilesのarbvp1とarbfp1のBindingsの項を読んでみ
プロファイルにもよるが、OpenGLならarbvp1/arbfp1かvp40/fp40辺りだろうから
Appendix B Language Profilesのarbvp1とarbfp1のBindingsの項を読んでみ
593デフォルトの名無しさん
2007/10/27(土) 03:43:29 openglの疑問はwww.opengl.orgに行ってspecification等をちゃんと読めばほとんど解決するだろう。
まずはレンダリングパイプラインを理解することが大切だと思うよ。
まずはレンダリングパイプラインを理解することが大切だと思うよ。
594健介
2007/12/25(火) 00:24:22 掃除機セマンテック
595デフォルトの名無しさん
2008/01/26(土) 04:19:35 cg のループ回数(もしくは行数)についてなのですが。
fragment shader (CG_PROFILE_ARBFP1): GeForce7900GS で
void main(out float4 color : COLOR){
float i;
float4 totalCol = 0;
for(i = 0; i < 200; i++){
totalCol += 0.001;
}
color = totalCol;
}
だとちゃんと動くのですが、ループの回数を200から300に増やすと、
CG_COMPILER_ERROR
になるのです。なにか制限とかってあるのでしょうか?
fragment shader (CG_PROFILE_ARBFP1): GeForce7900GS で
void main(out float4 color : COLOR){
float i;
float4 totalCol = 0;
for(i = 0; i < 200; i++){
totalCol += 0.001;
}
color = totalCol;
}
だとちゃんと動くのですが、ループの回数を200から300に増やすと、
CG_COMPILER_ERROR
になるのです。なにか制限とかってあるのでしょうか?
596デフォルトの名無しさん
2008/01/26(土) 04:21:29 タブが消えてしまった orz
void main(out float4 color : COLOR){
float i;
float4 totalCol = 0;
for(i = 0; i < 200; i++){
totalCol += 0.001;
}
color = totalCol;
}
こうです。
void main(out float4 color : COLOR){
float i;
float4 totalCol = 0;
for(i = 0; i < 200; i++){
totalCol += 0.001;
}
color = totalCol;
}
こうです。
597デフォルトの名無しさん
2008/01/26(土) 04:23:54 あれ? スペースも消えた。
Live2ch で書き込んでるせいですかね。 ごめんなさい。
Live2ch で書き込んでるせいですかね。 ごめんなさい。
598デフォルトの名無しさん
2008/01/26(土) 08:50:12 いや,重複した半角のスペースは消される
599デフォルトの名無しさん
2008/01/26(土) 09:11:08 ARBFP1というかARBFragmentProgramは動的ループをサポートしてないから
コンパイル時にループを全部展開されて命令数が足りなくなる
よって動的ループをサポートしてる他のプロファイルを使いましょう
コンパイル時にループを全部展開されて命令数が足りなくなる
よって動的ループをサポートしてる他のプロファイルを使いましょう
600595
2008/01/26(土) 15:54:22 ありがとうございます。
やっぱり制限数があるのですね。
他のプロファイルを試してみます。
やっぱり制限数があるのですね。
他のプロファイルを試してみます。
601デフォルトの名無しさん
2008/01/26(土) 16:01:28 ていうかこのスレは隔離スレなので質問は本スレ推奨
602デフォルトの名無しさん
2008/01/26(土) 18:22:17 nvidiaのfragment_programっておかしくね??
これだと、なんか固定機能しか使えないように見えるが
実際PS2.0できるじゃん。
fragment_program2だとPS3.0だし
ここは全員でおかしいと主張すべきだ。
これだと、なんか固定機能しか使えないように見えるが
実際PS2.0できるじゃん。
fragment_program2だとPS3.0だし
ここは全員でおかしいと主張すべきだ。
603デフォルトの名無しさん
2008/01/26(土) 18:35:39 何がおかしいんだか分からんが、それならば
NV_geometry_program4とかNV_fragment_program4とかNV_vertex_program4を
使えばSM4.0相当になるうえにWindowsXPでも動いてしまう
この方がおかしいと思わないか?
NV_geometry_program4とかNV_fragment_program4とかNV_vertex_program4を
使えばSM4.0相当になるうえにWindowsXPでも動いてしまう
この方がおかしいと思わないか?
604デフォルトの名無しさん
2008/01/26(土) 18:44:59 もっと分かりやすくすべきだ。
固定機能しか使えないのならば、fragment_program_kotei_fanction
とか、すべきだ。
PS2.0なら、fragment_program2
PS3.0なら、fragment_program3
とわかりやすくすべきなのだ。
だから、ARB_fragment_programがPS1.1までとかいう、変な大間違いが出てくるのだ。
固定機能しか使えないのならば、fragment_program_kotei_fanction
とか、すべきだ。
PS2.0なら、fragment_program2
PS3.0なら、fragment_program3
とわかりやすくすべきなのだ。
だから、ARB_fragment_programがPS1.1までとかいう、変な大間違いが出てくるのだ。
605デフォルトの名無しさん
2008/01/26(土) 19:34:53 PSやらSMはDirect3Dの基準だぞ
606595
2008/01/26(土) 21:12:47 Cg 2.0 をインストールし(1.1だった)、CG_PROFILE_FP40 プロファイルを使用したら
動的ループができるようになりました。
ちなみに、CG_PROFILE_FP30では、動的ループは無理でした。
ただ、別の問題が出てきました。
void main(uniform float size, out float4 color : COLOR){
float i;
float4 totalCol = 0;
for(i = 0; i < size; i++){
totalCol += 1;
}
color = totalCol / size;
}
だと、sizeをいくつにしても、色が白になるはずなのですが、
size 250以上になるとだんだん色が薄くなっていきます。ループの中が
250までしか展開できてないようです。
動的ループができるようになりました。
ちなみに、CG_PROFILE_FP30では、動的ループは無理でした。
ただ、別の問題が出てきました。
void main(uniform float size, out float4 color : COLOR){
float i;
float4 totalCol = 0;
for(i = 0; i < size; i++){
totalCol += 1;
}
color = totalCol / size;
}
だと、sizeをいくつにしても、色が白になるはずなのですが、
size 250以上になるとだんだん色が薄くなっていきます。ループの中が
250までしか展開できてないようです。
607595
2008/01/26(土) 21:18:47 続き
で、以下のようにループ部分を分割し、試しにsize=400にして実行したら、
void main(uniform float size, out float4 color : COLOR){
float i;
float4 totalCol = 0;
for(i = 0; i < size - 200; i++){
totalCol += 1;
}
for(i = 200; i < size; i++){
totalCol += 1;
}
color = totalCol / size;
}
見事に白色になりました。
GeForce8800 だったら、こういうでかいループも処理できるんでしょうか?
で、以下のようにループ部分を分割し、試しにsize=400にして実行したら、
void main(uniform float size, out float4 color : COLOR){
float i;
float4 totalCol = 0;
for(i = 0; i < size - 200; i++){
totalCol += 1;
}
for(i = 200; i < size; i++){
totalCol += 1;
}
color = totalCol / size;
}
見事に白色になりました。
GeForce8800 だったら、こういうでかいループも処理できるんでしょうか?
608デフォルトの名無しさん
2008/01/27(日) 14:22:52 fp40のループは最大256ループまでだそうだ
GeForce8系で使えるgp4fpなら制限無しだな
GeForce8系で使えるgp4fpなら制限無しだな
609デフォルトの名無しさん
2008/01/27(日) 14:36:30 正直MAXまでの何かってのはやってはいけないことだな
例えば命令スロットが512なら、
512を目一杯使わねばならない状態になるのはいかんこと。
例えば命令スロットが512なら、
512を目一杯使わねばならない状態になるのはいかんこと。
610デフォルトの名無しさん
2008/01/27(日) 16:20:13 リアルタイムレンダリングみたいな用途じゃ無いならいいんじゃない
むしろGPGPUやオフラインレンダリングとかなら出来るだけ詰め込んで
GPUに処理を肩代わりさせたいんじゃないのかな
むしろGPGPUやオフラインレンダリングとかなら出来るだけ詰め込んで
GPUに処理を肩代わりさせたいんじゃないのかな
611595
2008/01/27(日) 20:05:20 256まででしたか。
とりあえず分割ループでごまかすことにしました。
8800欲しい・・・
ちなみに、GPGPUなプログラムです。
とりあえず分割ループでごまかすことにしました。
8800欲しい・・・
ちなみに、GPGPUなプログラムです。
612デフォルトの名無しさん
2008/02/04(月) 13:04:10 main(out float4 color){
TexColor = tex2D(tex, texcoord);// テクスチャの色
PolColor = Lighting();// ポリゴンの色
color = TexColor * PolColor;
}
Cgのフラグメントシェーダの色々省略したコードなのですが、テクスチャをマッピングしないポリゴンがある場合、
colorが変な色になります。ポリゴン毎にテクスチャの存在の可否を指定する変数を渡して
if(texExist)
color = TexColor * PolColor;
else
color = PolColor;
とすれば意図通りの動作はするのですが、このような処理にするしかないのでしょうか?
TexColor = tex2D(tex, texcoord);// テクスチャの色
PolColor = Lighting();// ポリゴンの色
color = TexColor * PolColor;
}
Cgのフラグメントシェーダの色々省略したコードなのですが、テクスチャをマッピングしないポリゴンがある場合、
colorが変な色になります。ポリゴン毎にテクスチャの存在の可否を指定する変数を渡して
if(texExist)
color = TexColor * PolColor;
else
color = PolColor;
とすれば意図通りの動作はするのですが、このような処理にするしかないのでしょうか?
613デフォルトの名無しさん
2008/02/05(火) 00:55:33 テクスチャ設定してないのにテクスチャ読めと命令してるんだから変な色になるのは当然だろ
テクスチャ無い時はサンプリングしないって分岐はごく自然な処理だと思うが
他にどうなって欲しいてっんだ?
テクスチャ無い時はサンプリングしないって分岐はごく自然な処理だと思うが
他にどうなって欲しいてっんだ?
614デフォルトの名無しさん
2008/02/05(火) 01:01:02 >>612
分岐処理が嫌だったらシェーダ2種類作ったらいいんじゃない?
分岐処理が嫌だったらシェーダ2種類作ったらいいんじゃない?
615デフォルトの名無しさん
2008/02/05(火) 07:51:42 適当に1x1の白テクスチャでも読ませればおk
616デフォルトの名無しさん
2008/02/05(火) 17:49:45617デフォルトの名無しさん
2008/02/05(火) 23:11:26 >シェーダ2種類作ったらいいんじゃない?
2種類をCgランタイムでどう呼び出すのかわからない
2種類をCgランタイムでどう呼び出すのかわからない
618デフォルトの名無しさん
2008/02/06(水) 01:23:24 テクスチャの有り無しでcgBindProgramに渡すプログラムを変えればいいだけだよ
619612
2008/02/06(水) 01:52:25 >>615
>>618
今は
cgGLBindProgram(); sceneGraph->DrawAll(); cgGLBindProgram(NULL);
こんな感じで全部のオブジェクトを一気に描画してるので,
シェーダ2種類作ってポリゴン毎にバインドするシェーダを切り替えるのは
遅くなっちゃうのかなと思って他にいい方法がないか考えてました。
頭で考えてただけで実際遅くなるかとかの検証はしてなかったのでやってみます。
書いてて思ったんですけど同じマテリアル(テクスチャ)を使う
ポリゴンをグルーピングしていればシェーダ切り替える方法は
使いやすそうですね。
どっちのやり方も参考になりました、ありがとうございます。
>>618
今は
cgGLBindProgram(); sceneGraph->DrawAll(); cgGLBindProgram(NULL);
こんな感じで全部のオブジェクトを一気に描画してるので,
シェーダ2種類作ってポリゴン毎にバインドするシェーダを切り替えるのは
遅くなっちゃうのかなと思って他にいい方法がないか考えてました。
頭で考えてただけで実際遅くなるかとかの検証はしてなかったのでやってみます。
書いてて思ったんですけど同じマテリアル(テクスチャ)を使う
ポリゴンをグルーピングしていればシェーダ切り替える方法は
使いやすそうですね。
どっちのやり方も参考になりました、ありがとうございます。
620デフォルトの名無しさん
2008/02/06(水) 02:11:20 描画時にマテリアルでソートするのは高速化の常套手段だね
621デフォルトの名無しさん
2008/06/24(火) 00:36:30 保守
622デフォルトの名無しさん
2008/07/19(土) 13:22:03 コンパイルすると
Error: 'C:\A\TOOLS\BCC\LIB\GLU32.LIB' contains invalid OMF record, type 0x21 (po
ssibly COFF)
と出ます
IMPLIB glut32.lib glut32.dll
をして、glut32.libを上書きしてるんですがダメです
Error: 'C:\A\TOOLS\BCC\LIB\GLU32.LIB' contains invalid OMF record, type 0x21 (po
ssibly COFF)
と出ます
IMPLIB glut32.lib glut32.dll
をして、glut32.libを上書きしてるんですがダメです
623デフォルトの名無しさん
2008/07/19(土) 13:38:31 エラーをよく読め・・・ glut32.lib じゃないだろう
624デフォルトの名無しさん
2008/07/19(土) 15:44:55 ありがとうございます。解決しました。
625デフォルトの名無しさん
2008/08/06(水) 19:48:28 ttp://www.kumaryu.net/cgi-bin/diary/?date=20080804#p02
S3本気だなー
ATIはいつ本気出すんだー
S3本気だなー
ATIはいつ本気出すんだー
626デフォルトの名無しさん
2008/08/06(水) 22:57:14 Khronos BOFs
* OpenGL 3.0 Specification Overview
* OpenGL hardware and driver plans - AMD, Intel, NVIDIA
* Developer's perspective on OpenGL 3.0
* The new Khronos OpenCL Working Group and how that affects OpenGL
* and more...
AMDもいつまでも黙ってはいないぞ
どちらかと言えば微妙な拡張よりこっちの方が期待したいし
できればIntelもな…
* OpenGL 3.0 Specification Overview
* OpenGL hardware and driver plans - AMD, Intel, NVIDIA
* Developer's perspective on OpenGL 3.0
* The new Khronos OpenCL Working Group and how that affects OpenGL
* and more...
AMDもいつまでも黙ってはいないぞ
どちらかと言えば微妙な拡張よりこっちの方が期待したいし
できればIntelもな…
627デフォルトの名無しさん
2008/08/06(水) 23:30:50 AMDはさっさと拡張の仕様を公開しろ。
ドキュメントがない拡張が何個溜まってると思ってるんだ。
ドキュメントがない拡張が何個溜まってると思ってるんだ。
628デフォルトの名無しさん
2008/08/12(火) 10:25:36 OpenGL3.0情報
ttp://www.opengl.org/news/permalink/the_khronos_group_announced_today_it_has_released_the_opengl_30_specificati/
ttp://www.khronos.org/news/press/releases/khronos_releases_opengl_30_specifications_to_support_latest_generations_of/
ttp://www.opengl.org/news/permalink/the_khronos_group_announced_today_it_has_released_the_opengl_30_specificati/
ttp://www.khronos.org/news/press/releases/khronos_releases_opengl_30_specifications_to_support_latest_generations_of/
629デフォルトの名無しさん
2008/08/12(火) 11:31:52 opengl.orgのmessage boardでは不満の嵐だな
「散々待たせといて結局これかよ!」みたいな
「散々待たせといて結局これかよ!」みたいな
630デフォルトの名無しさん
2008/08/12(火) 12:40:54 せめて3.0で削除された仕様は書かないでおいてくれると読み易かったんだがな
あとせめてテクスチャ回りを整理してほしかった
あとせめてテクスチャ回りを整理してほしかった
631デフォルトの名無しさん
2008/09/20(土) 13:53:54632デフォルトの名無しさん
2008/09/21(日) 18:43:03 やっとまともなライセンスになったか
633デフォルトの名無しさん
2008/10/24(金) 03:30:59 保守
634デフォルトの名無しさん
2008/10/29(水) 15:59:00 >>83
鹿バネ(´∀`)
鹿バネ(´∀`)
635デフォルトの名無しさん
2008/11/30(日) 19:03:58 OpenGLnのmain関数をスレッドで呼び出して使おうと思っているのだが、display()関数のオブジェクトカラーを引数で渡した値で更新したいんだ。
マルチスレッドで値を渡すことはできるのだが、OpenGL側でどうやって、display()関数に値を綿したらいいのかわらかない。
つまり、
プログラム1 --> OpenGLプログラム(スレッドで生成)
▼ ▼
値の更新 色変更
▼ ▼
値の更新 色変更
… …
ってことをしたいんだ。
マルチスレッドで値を渡すことはできるのだが、OpenGL側でどうやって、display()関数に値を綿したらいいのかわらかない。
つまり、
プログラム1 --> OpenGLプログラム(スレッドで生成)
▼ ▼
値の更新 色変更
▼ ▼
値の更新 色変更
… …
ってことをしたいんだ。
636デフォルトの名無しさん
2008/12/10(水) 22:54:50 Snow Leopardの準備は万端? 「OpenCL 1.0」の仕様が公開[08/12/09]
http://pc11.2ch.net/test/read.cgi/pcnews/1228830599/
http://pc11.2ch.net/test/read.cgi/pcnews/1228830599/
レスを投稿する
ニュース
- 【コメ】やっぱり進次郎のほうがマシ…「コメの値下げは無理」と言い張る農林族の鈴木農水大臣 ★2 [ぐれ★]
- 高市首相の台湾有事答弁「問題ない」50% 「問題があったと思う」25%を大きく上回る 毎日新聞世論調査 ★2 [尺アジ★]
- 【発信国情報】X、プロフィール上に「VPN使用の有無」も表示か… [BFU★]
- 【速報】 中国国営新聞社 「日本はすでに代価を支払った」 中国SNSで1位に 高市総理の発言めぐり ★4 [お断り★]
- 【相撲】九州場所千秋楽 関脇・安青錦が初優勝 優勝決定戦で豊昇龍破る 所要14場所は史上2位のスピード記録 [ニーニーφ★]
- 中国の王毅外相、高市首相の台湾巡る答弁は「レッドラインを越えた」 ★2 [どどん★]
- 競輪実況★1608
- 巨専】ジャイアンツファンフェスタ2025
- とらせん 2
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1809
- こいせん 全レス転載禁止 SHAKARIKI
- 【D専】
- 高市首相、G20で中国念頭に「レアアースを特定国に頼らずアフリカから輸入しましょう!」と提唱し中国を挑発wwwwwwwwwwww [271912485]
- 【📛専】とうふさんすこすこ😊👎スレッド【とうふゲームズ🏡】
- おさかなさんあつまれえ
- 有働Times「高市総理は法的な解釈を述べただけだが中国は台湾有事で自衛隊が中国を攻撃すると取った。ボタンのかけ違いで誤解が生じた」 [931948549]
- 【動画】イタリア人、これすぎると世界で話題 ジャップこれどうすんの? [689851879]
- 【悲報】ツイッター愛国アカウント、続々と外国産だということが判明 つまり愛国者は外国人ということ? ★3 [158478931]
