OpenGL 2.0 専用スレ
情報がすくねーな。あとドライバのGL実装がバグバグ。 というかGLマンセーな人はATIやNVのドライバの糞実装で泣いた事は無いのか? あいつら、明らかにやる気ないぞ。 >>120 全然。 S3が変な実装しているのを見かけたことはあるがな。 そか。その程度の所しか触ってないならそれはそれで幸せだと思うぞ。 人間楽な道に行くとバカなことしか言わなくなるし ロクなこともできない 貧乏人って苦労してるからどんどんバカじゃなくなっていくね じっと手をみる カーマックがDXボーイだったら、多分今頃落ちぶれてたであろう。 結局のところGLは実装依存になってるんだよなぁ DXと何が違うのやら こっちのスレまで不毛な論争が入ってきたな。 どうなろうがここはOpenGL関連のスレなんだからOpenGLの価値否定ばっかしてもしょうがないだろ。 実際の2.0関連の話を粛々とすればいいんじゃないの? 粛々とする対象の話がない。 できるレベルに達している人が集まってない。 でも、DirectXの話ははっきり言ってうざいだけ。 どうしてもやるならOpenGL vs DirectXみたいなスレでも立てて そちらへ隔離してほしい。 OpenGL2.0の達人の方々に質問です。 FBOに対してFSAAをかける方法解る人いますか? 拡張命令を目を皿にして眺めてもよくわかんなかったれす。 >>133 EXT_framebuffer_object の Issues 41 は読んだ? 久しぶりに来てみたら。なんだ。お前らまだOpenGLなんかやってやがる。 ダメじゃん。全然未来が見えてないジャン。 やっていることは。種子島の鉄砲伝来以来。変わってないジャン。 ま。そういう民族ってことなんだろうけど。 お前らには悪いが。私は一足お先に未来へと行かせてもらうよ。 >>135 両方のスレへコピペご苦労。はやく未来とやらに逝ってください。 コピペをコピペであると指摘するのはアホ コピペにマジスレするのが知識人 最後の希望、OpenGL2.0専用スレも、もはや死に体同然だな。 >>135 一瞬、ちょっとだけ過去にタイムスリップしたかと思ったZE! >>134 Issues41は読みました…。う〜良くわからん。 まだ実装されてないって事?実装する予定が無いって事? またpbufferに逆戻りか…。 >>148 一言で言えば「まだできない」だと思う。各ベンダの独自拡張までは調べてないけど。 >>149 マジカ!折角pbufferの呪縛から逃れて新たにFBOで仕切りなおしかと思いきや FSAAで拡張地獄に付き合わなきゃあかんのか。DX Boyがシャカリキになるのも うなづけるってもんだ。 ってか、GLスレでちゃんとレス貰えると思わなかった。サンクス。 JavaのJOGLならpbufferの違いを隠蔽してくれるみたいだぞ GLSLでマルチテクスチャができねぇ フラグメントシェーダで二つ目のテクスチャがサンプリングされない つーか全てのレンダリングステートを意識するのが疲れる glActiveTextureARB( GL_TEXTURE0_ARB ) / glActiveTextureARB( GL_TEXTURE1_ARB )とか glEnable( GL_TEXTURE_2D ) / glDisable( GL_TEXTURE_2D )とか BindTextureとか とかいつどの順番でどう呼べばいいのかわからんボケ(`') GLSL uniform sampler2D tex0, tex1; ↓ glUniform1i(glGetUniformLocation(prog, "tex"), 1); // GL_TEXTURE1 ↓ glActiveTexture( GL_TEXTURE1)の後、glBindTexture GLSLの時、glEnable/glDisableいらない(かも ↓ 寝る くそっできねー >>153 寝ないでくれ。 そんな感じでやってるのだがやっぱりダメできない。 テクスチャの読み込み時にもglActiveTextureARBは必要なのだろうか。どっちにしろできなかったけど。 VBO使ってるのは関係あるんかな。 今環境マッピングやってて、一つ目のテクスチャUVはVBOで、二つ目のテクスチャUVはフラグメントシェーダ中で計算してるのだけど。 今から非VBOでやってみる。 GLSL+マルチテクスチャできた人でつまづいたところとかあったら教えてくで。 >>154 テクスチャ読み込むときもバインド必要だよ。 読み込み glBindTexture(... gluBulid2DMipmaps(... 描画 glActiveTexture(... glBindTexture(... まず152はテクスチャフェッチとテクスチャユニットの関係から勉強するべき。 ていうか実際にシェーダ書く前にシェーダパイプラインの構造を勉強するべき。 そんなんやってらんねーよ、とか言うなら素直にDirectXに行くべき。 非VBO(glMultiTexCoord2fARB)でもダメだった。一つ目のテクスチャしか表示されねぇ。 gl_FragColor = texture2DProj( tex1, gl_TexCoord[0] ) * texture2DProj( tex2, gl_TexCoord[1] ); >>155 そこは既に見ている、のだけど・・・ >>156 読み込み glActiveTexture ←不要? glGenTextures glBindTexture glTexImage2D 描画 glActiveTexture glBindTexture glTexParameteri //ここで描画 >>157 了解、勉強してくる。たぶん中途半端な理解だから。 UVがおかしいのかテクスチャがおかしいのかをはっきりさせろ。 ためしに、 gl_FragColor = texture2DProj( tex2, gl_TexCoord[0] ); とか、 gl_FragColor = texture2DProj( tex1, gl_TexCoord[1] ); とか、やってみろ。 マジレスすると、 シェーダはテクスチャユニットからテクスチャをフェッチしてくるので テクスチャユニットにテクスチャが何もバインドされていなければ シェーダはテクスチャユニットからテクスチャをフェッチできない。 したがってシェーダでテクスチャをフェッチする場合は必ず テクスチャユニットにテクスチャをバインドしてテクスチャユニットを アクティブにしなければならない。 マジレスすると、 シェーダはテクスチャをバインドしてテクスチャユニットから テクスチャをテクスチャユニットにテクスチャがフェッチしてくるので テクスチャユニットにテクスチャがテクスチャユニットをアクティブに 何もバインドされていなければテクスチャユニットからテクスチャをフェッチ シェーダはテクスチャユニットからテクスチャをフェッチできない。 したがってテクスチャユニットにシェーダでテクスチャをフェッチする場合は必ず テクスチャユニットにテクスチャユニットをアクティブにテクスチャをバインドして テクスチャユニットをテクスチャユニットからテクスチャをテクスチャユニットに テクスチャアクティブにしなければならない。 正直こんなところでつまづくならDirectXのほうが理解が早いぞ。 DirectX10でまた色々強化されるし乗り換えておいたほうがいいんじゃね? やっとできた! glUseProgramObjectARBでハンドルを指定する前にglUniform1iARBしていたのが原因だったようだ。 読み込み時にglActiveTextureする必要はなかった。 同じUV値で>>159 の方法で悩んだり、なんかどんどん小さいエンバグしていって、もうn レスしてくれた人、一緒に考えてくれた人、ありがとう。 アホだけど、やっぱり好きです。 >>172 OpenGL 1.3以降なら標準機能だす。無論2.0でも使える。 Xbox360大盛況でどうみてもDirectXの圧勝です。 OpenGLは終了致しました。 ご声援ありがとうございました。 今後はDirectXをお使いください。 まだだ! まだ我々にはOpenGL2.1がある!! glUniform1iARBって言えば、俺もハマッた記憶あるな。1時間ぐらい悩んだ。 つか、DX-Boyの俺にはサンプラ変数にシェーダ内に値が持てないのがまず理解できない。 cgでもつかえって事か。 CgはCgで色々ある コンパイラに任せとくと実行速度が1/2になることも Cgは遅いから気をつけろよ。 無駄な変数を定義せず無駄なセットをしないこと。 シェーダーが切り替わると共有変数とか関係なしに 全変数(未使用も含む)が再セットされるのでコストがでかい。 Cg はライブラリは使わず、コンパイラとしてのみ使うのが吉だな。 DirectXのHLSLも同じくアセンブラにコンパイルして使ったほうがいいな。 >>179 >>180 まじで? CgがそうだってことはHLSLも? GLSLはどうなんだろう・・・。 GLSLはよく知らないけど、CgやHLSLはアセンブラの知識が必須。 特にピクセルシェーダ1.x系列の場合は。 シェーダを書くときは一度コンパイル結果をアセンブラに落として 中身を確認した方がいい。特に従属テクスチャ命令なんかは命令の 制限が解ってないと、きちんとアセンブラの命令に落ちてくれない。 まあ、ピクセルシェーダ2.x以降は適当に書いててもコンパイル できちゃうんだけどね。それはそれでまずいんだけど。 GLSLはループ回してる時に動的分岐入れるとまずコンパイルできない。 いや、コンパイルはできるんだがリンクできない。 「ループ時にブランチするな」とはどこにも書いてないので、恐らくコンパイラのバグなんだろう。 (ちなみにnVIDIAのCgコンパイラ経由) かと言ってARB_vertex/fragment_programはループもブランチも実装されてないから アセンブラでチマチマ書こうにも書けない。 結局、ベンダがコンパイラの質を上げてくれるのを待つしかない。 川瀬氏が今Cgいろいろやってるが、苦労してるようだ 投稿日 11月22日(火)04時29分 投稿者 Masa 削除 参照しているプログラムどころか、 使っている/いないに全く関係無しに、 エフェクト内の全ての uniform 変数は エフェクト内の全てのプログラムに 連結されているみたいです。 結果、全く使われない無駄な連結が何百とあったので、 それを cgDisconnectParameter するだけでも テストプログラム全体の速度が倍以上速くなりました。 … ありえない…。 >>180 はCgFXの話だよね? >>185 GLSLじゃないけど、CgのFP40プロファイルとかはどうだろう。一応ループはコンパイル通って動いたよ。 NVIDIAのボードじゃないと動かないかもしれないけど つーかPCもビデオカードなんて捨ててGPUコアをCPUみたく直接M/Bに乗せるアーキテクチャにするべき。 で、広帯域のメモリをCPU/GPUで共有。勿論、各種バッファ(頂点、フレーム、ステンシルetc)にCPU側からアクセス可能、と。 正直RTVBなんかやってられないわけですよ。 まぁ、Shader1.x世代のコードを書いてた人にはHLSLはちょっとアレかも 知れないが実際には意外と予想した通りのコードを吐き出してくれる。 どのみちペアリング実行とかテクスチャレイテンシーは仕様制定されて ないから中間コードをドライバが最適化してくれるのを期待するしかないしね。 つか同じボードで同じ処理をしてもGLSLの方が2〜3割減ぐらいでパフォーマンス 出ない。特に動的/静的分岐周りは意味不明なパフォーマンスになる。 FBOのバインドにはms単位でコストかかるし、本当にこれでゲーム作れるのか… と疑問に思うよ。 セガのアーケードボードはLinux+OpenGL2.0なんだっけ?バーチャ5とか凄い映像 なんだけどやっぱドライバとか専用にカスタマイズしてもらってるんだろうね。いいなぁ。 >>190 >GLSLの方が2〜3割減ぐらいでパフォーマンス出ない 頂点の描画方法に問題があるかと OpenGLはIMだとドライバのオーバーヘッドありまくりで激遅 DLも結局ドライバ内部で命令のスイッチが起こるのでVBOが最適 うはwいつのまにかOpenGL2.0専用スレらしくなってるw なんでもそうだが、コンパイラ任せでそのまんま ってのはダメだ う〜ん、でもコンパイラトリッキーなコードはそれはそれで問題だからなぁ。 >>191 OpenGL(というかNVIDIAドライバ)はOpenGLになると急に頂点能力落ちるね。 ハードで効率よく扱える頂点ストリームに特定の法則があるっぽいんだが意味不明。 uniform変数の連結ポリシーもそうなんだけど、 そこら辺何も言わないしどこにも書いてないから困る 書かれてあれば、自分でディスパッチしたり切断したりできるのに >>194 VBO使えば、1つのバッファ・1つのデータ配列で頂点も法線もUVもカラーもマルチUVも一挙に流し込めるからマジお奨め。 しかもそのデータ配列の構造も自由に構成できるから(例えばGL_FLOATの頂点3/UV2/法線2)柔軟性が非常に高い。 まぁ、DirectXは知らんが。 ていうか商用のOpenGLゲームでアニメーションをどのように描画しているのか 激しく謎なんだけど誰かknow-how知りませんかね? やっぱglDrawElementsでバッチしてるんだろうか。 しかし頂点座標はボーンの計算後に生成されるわけだしなぁ…。 >>199 glLockArraysEXTやってなければ大丈夫なんじゃないか? >199 GPUかCPUのどっちか暇そうなほうにやらせる。 GPUでやる場合は頂点シェーダ。 CPUでやる場合は描画前に頂点座標を計算してバッファに貯めとく。 DirectXだと頂点シェーダをCPUで実行させるのが簡単なんだよね。 正直言ってこの機能だけはうらやましい。 >>201 うーん、やっぱ動的に計算する時は頂点シェーダでスキニングってことになるのか。 >川瀬氏が今Cgいろいろやってるが、苦労してるようだ 何をいまさらって書き込みだよな。 Cgが遅いなんて使ってみればすぐ気づくだろうに。 俺はレジスタ256個分を変数で予約したら劇的に遅くなって気づいた。 Cgが遅いんじゃなくてCgFXの話ですよね? CgFXって誰も使ってないっぽい cgGetFirstTechniqueをググって3hitだし... 今自分もCgからCgFXにするかGLSLにするか悩み中。 >204 PS3のゲーム開発でCgやる必要が出てきたとか。 でも今はシリコンスタジオ勤務らしいからそれはないか。 つか個人的には早くGeometry Shaderでウハウハしたいんだが きっとOpenGLだとベンダ拡張で出るだけで標準になるには1年以上かかるだろうな・・・。 ところでOpenGL2.1っていつ出るの? PS3だからってCg使わなくてもいいだろ。 コンパイルだけさせてレジスタへのパラメータ設定は ARBの命令使えばいいし。 GLSLも遅いみたいだしそうしたほうが良くね? NVIDIAもわからんところだ。 あれだけ、シェーダのスペシャリスト中のスペシャリストばかり揃ってて なんでこんな仕様&コンパイラになるんだ。 だから Cg はコンパイラとして使って、アセンブラで埋め込めって。 ライブラリの出来が悪いのはCgFXがマイクロソフトと共同開発だから。 >>208 まーく・じぇい・きるがーど先生のフォースが衰えてきてるから。 >>205 CgFXとGLSLを同列に語るのはおかしいんじゃないか? CgFXはエフェクトファイルだからあえて比べるならAshliか。 Ashliは使ったことはないがな。 CgFXは遅い上に使い勝手も微妙だから自作した方が早いかも。 ちゅうか、おまえらCg以外にネタないんですかね? あんましOpenGL2.0とも関係ないし。 実はマイクロソフトもDirectXのEffectクラスの使用は推奨してない。 ConstantTableなんて最近付いたがおかしいと思ったろ? シェーダー言語はコンパイルだけして自分でシェーダーを扱う ヘルパークラスを作ったほうが無難。 うまく行けばOpenGLとDirectXで共通に使える自分クラスが出来て便利。 フレームレートも大幅に向上する可能性あり。 MSはEffectクラスの利用を推奨してますがな。 んだからConstantTableとか拡張してんだよ。 GL2.0にもEffectファイルのレイヤーを実装するとか 予定には上がってたんだけど最近聞かないな…。だめぽ。 ID3DXEffectCompiler::CompileShaderを使ってシェーダーをコンパイルして その時にConstantTableを受け取るんだそ。これやる時点でEffectクラス なんざ使用しませんが?おれ何か間違えてる? コンパイル後のシェーダーに名前でデータセットするには ConstantTableのようなクラスが足りなかったしね。 これでHLSLを使いつつもEffectクラスを使わずに済む。 uniform int numLights; for (int i=0; i<numLights; ++i) これでリンク通らんのは仕様ですかそうですか。 プログラマブルなんて上っ面だけで実際は描画前にガチガチに固めた ある種の固定機能じゃねーかこの野郎。 またずいぶんな低脳が沸いてきたな。 汎用CPUと同じことが全部GPUでできるならCPUいらないよ。w 自分で低脳と評する相手に反応するなんて 俺には恥ずかしくてできない。 PS3だとCgなんて使わずに全部CELLでやるんだろうな。 スキニングとかシェーダーじゃつらいし、FSAAとかもSPEがやるとか 言うらしいし。Cgが遅いとかいう問題も関係無いだろうね。 >>223 テッセレーションとか、一部の処理はCELL側でやる可能性はあるだろうね。 でもGPUシェーダーで十分できる範囲の事はやっぱGPUでやった方がよくね? 空いたSPE他の事に回せるし。 スキニングはシェーダーに積めるマトリクスに限界があるから 確かにSPEがいいかも。AAはHDRバッファだと掛けられないので MGS4はSPEでやるらしいね。 XBOX360ではシェーダーをCPUコードとGPUコードの両方でコンパイル出切るらしいが まぁ当然SPEはカリカリハンドチューニングなんだろうね。大変だ。 いまどき全角英数字使ってる奴なんて久しぶりに見たわ いい加減、恥ずかしくねーの? ていうか全角英数字キモイよキモイよ 俺の経験からすると全角英数字使ってる奴は間違いなく頭の弱い馬鹿。 全角数字はスタイルが醜い。そして無駄が多い。 OpenGL Shading Language OpenGL Shading Language 明らかに後者の方が格段に美しく、かつ、スマート。 1byteで表示出来るもんをわざわざ2byteで書くその神経が信じられない。 否、信じたくもない。 俺の経験からすると全角カタカナ使ってる奴は間違いなく頭の弱い馬鹿。 全角カタカナはスタイルが醜い。そして無駄が多い。 カスどもがwwwww カスどもがwwwww 明らかに後者の方が格段に美しく、かつ、スマート。 1byteで表示出来るもんをわざわざ2byteで書くその神経が信じられない。 否、信じたくもない。 コンピュータといえばWindowsしか知らない精神的視野狭窄 >>232 ニホンザルお得意のパクリ、すなわち、二番煎じかwww だからいつも言ってるだろ。全角の方が美しい環境もあるって。 Windowsしか知らんのか。このパソコン素人が。 「俺の経験からすると」ってのが痛々しいぜ。 半角片仮名と全角英数字は日本の規格屋の恥だと思う。 要するにフォントの指定を文字コードに入れてしまったという先見性のなさ。 WindowsもLinuxもMacも使用してますが何か。 ていうかプログラミングはもっぱらLinux上ですが何か。 少なくとも「全角英数字の方が美しい環境」なんてもんは 日本語環境に特化された日本でしか通用しない日本語のWebしか見ない視野の狭い日本人向けの 非グロォーバァル・ステェンダァードォな環境ってこった。 自分の環境では全角が美しい→全角にこだわる→(プッ何こいつ全角使ってやがるw) まさに自分しか見えない超視野狭窄のオナニストだなw とりあえず、オナニストはさっさと童貞捨てて世界を知れw なんだよもうちょっと遊べる奴かと思ったのに全然面白くないや 相手して損した おまえらネタはいいからOpenGL2.0の話題を出せ >>238 自分の価値観を絶対として他人をこき下ろす。 お前ともだち少ないだろ? >>242 少なくとも全角半角の話題よりはこのスレにふさわしい。 つまり全く問題ない。 >>232 うまいね。 >>238 日本語環境ですが何か? DirectXの進化と比べると悲しくなってくるな。やっぱ金の賭け方が半端に違うからなぁ。 クロスプラットフォームというDirectXにはあり得ない利点があるのが唯一の支えだな。 かつてOpenGLで名を馳せたあの人やあの人、さらにはあの人・あの人までもが 続々とDirectXに移行している(あるいは移行予定)という事実。 先見性のないお前らはいつまでOpenGLなんて使ってるんでしょうね。 >>248 そんなこと言ってる暇があったらLinux版とMacOS版のDirectXを作ってくれ。 >>248 その4人は誰か書けよー嘘くせー と煽る あー、釣れたとか言うのと同じ負け犬の遠吠えですな。 気は済んだかい? しょうがない、以下知的なウィットを理解できないバカのための解説。 >>248 で「OpenGLの識者たちがDirectXへ軒並み移行」というネタをでっち上げる ↓ そこで一言:「先見性のないお前らはいつまでOpenGLなんて使ってるんでしょうね」 ↓ 見事に劣等感を刺激されたバカたちが早々に脊髄反射。 権威主義の日本人の弱点を巧みに突いた俺の明らかな圧勝。 バカは「負け犬の遠吠え」ときたもんだ。あっぱれ。 海外フォーラムではD3D10で沸き立つところに OpenGL勢が茶々を入れるという図式になっております。 OpenGLってオレオレ・グレート・ライブラリに改名したほうがいいと思う Dx10のシェーダーのレジスタ数がはんぱじゃないほど増設されてる。 なんかまったくの別物になった。Dx9やOpenGLと親和性は無いかもな。 FBOマジ糞。バックバッファからのコピーの方が速いとかマジ氏ね。 何がRTTだと。コピー挟む方が直接RTTするより速いってどーなっとんねん。 しかもカラーバッファとデプスバッファの同時RTTもできねーし。 こりゃpbufferのコンテキストスイッチ地獄よりも最悪だわ。 さ〜て、わいは今のうちからD3D10に乗り換える準備するで。 新しいhumusさんのデモ、すごいね。トータルなデモになってる あの程度で驚いて、しかも自分でも作れない>>261 は明らかにGL2.0の猛者では無いので 然るべきスレに行こうね。 ~~~~~~~~~~~~ いや、あのレベルのものを自分で作れる奴なんて元からこのスレにいないだろwww てかDirectXと比較して使ってる奴なんているの?Windows上で使ってる奴なんていないやね? OpenGLの魅力はOpenでクロスプラットフォームなところでDirectXと比較するような話じゃねぇし。 > OpenGLの魅力はOpenでクロスプラットフォーム ダウト >>259 それは多分早期Zカリング(NVIDAではHyper Z)が効いて無い んだと思うよ。一部のFBOの組み合わせでは何故か効かなくなる 傾向がある。法則は不明。マジウンコ。 まぁGL2.0のドライバは本当にクズなので最新技術を追いたいのなら DX10に移行する方が賢いかも。少なくともリファレンスラスタライザ のお陰でドライババグの洗い出しは楽。 あのテキストオンリーの読みにくい仕様書からも逃れられるし。 クロスプラットフォームなんて所詮は戯言ですよ。 PCに限って言えば、本職でUNIX系OSでOpenGL使ってる人なんて極少数だし NVやらATIのLinuxドライバは怠慢な香りがプンプンしてるし(もちろんソース非公開) GPUの最大の使用用途である3Dゲームの大半はWindows向けだし OpenGLの最大の利点だったプログラミングのし易さも拡張だらけでもはやカオスの域に突入した感もあるし Windows VistaではDirectXの尻に敷かれる(レイヤが挟む)し。 とりあえずハードベンダーはLinuxドライバをオープンソースにして GPUネイティブのコードまで開発者がタッチできるようにするべき。 そうすれば3Dに極限まで特化したLinux3Dとかでリソース喰いまくりのWindowsと差別化できるのに。 つーか、Direct3D10がWindowsVistaオンリーってアホとしか思えない。 しかもVista以後はWindowsXPのサポートも早々に打ち切り。 M$、終わったな。 誰もウィンドウが無駄にピョンピョン跳ね回る重いだけのOSなんて欲してない。 次世代PCゲームがVistaでしか動かないとなれば、単にゲーマーの割れを助長するだけ。 >>268 俺も今まで何度か「MS終わったな」と思ったが、そのたびに裏切られてきた。orz >>268 >次世代PCゲームがVistaでしか動かない ソースは? どう読んでも開発環境の話にしか見えんのだが コントローラの話か? わざわざソース持って来るまでもないっつーか、 そういう根本的なことすら知らないっつー事実に驚愕。 おめでてーよな。正直。 なんだかんだ煽ってソースを出さない手法はもう古いと思われ なし崩し的にXPでもD3D10がサポートされるに1票。 そんな無理やりな変革なんて通用せんと思うねえ。 しかし今年後半からゲームベンダー側がWin2kをインストーラで弾くものが多くなった。 2kとXPの違いなんて一部フォントの扱いだけじゃねえかウワァァン。 >>259 環境の問題だろ。 Windows上でGF6800使ってる分には問題無く使えてるぞ。 コピーとどっちが速いかは調べてないが、そんなに遅いと思ったことはない。 カラーバッファとデプスバッファの同時RTTも出来てたはず。 どっちにしろドライバが腐ってたらDirectXでも同じだと思うんだが。 DirectXは使ってないんでよく知らんけどね。 32bitテクスチャにフィルタ掛けると糞重。当然だけど むかしspinにXPでもWGF出るかもって書いてあった気がするけど それならXPにDX10出る可能性も残ってる。 お前らって普通に白痴なんだな。 いや、素で釣りだと思ってるほどおめでたい奴らだったとは想定の範囲外。 とりあえず、お前ら情報収集範囲が恐ろしく狭過ぎるよ。もっと世界に目を向けた方がいい。 ttp://www.gamedev.net/reference/programming/features/d3d10overview/ なんつーか、日本のOpenGL界隈のレベルの低さを改めて実感してゲンナリだよ。 >>275 ちうか、DirectXとクロス環境作って開発してるんだが何かにつけてOpenGLの方が 遅いな。モノによっては2〜3倍近く遅くなる。まぁ組み方が悪いところもあるんだろうが 最適化のヒントがほぼ皆無で試行錯誤で探るしかないってのも素敵。 あと、明らかにドライバ内でメモリリークしてたりとかお話にならない所も多いなぁ。 コンパイル時にこんなエラーが出たんだけど Error: 'C:\PROG\GLUT32.LIB' contains invalid OMF record , type 0x21 (possibly COFF) どういう意味? >>282 そのGLUT32.LIBはお前さんが使ってるコンパイラ(リンカ)では使えないという意味。 >>278 VistaにはAero Glassを使用しないAPIも用意されるんで、その仕様次第によっては XPに落とし込めるモデルになる可能性も大きいと思うよ。 Aero Glass自体はDirect3D9のAPIだし。 >>281 拡張機能を使わないと遅い それがOpenGLクオリティ 「OpenGLベースで」という言葉はもはや意味を成さないね OpenGLは終了いたします。 3 2 1 バァーーーーーーーーーーンッ!!!!!!!!!!!!!!!! 糸冬了だッ!!!!!!!!!! >>288 おまえほどじゃないよ。 3 2 1 バァーーーーーーーーーーンッ!!!!!!!!!!!!!!!! オマエガナ!!!!!!!!!! UnrealEngine3 一時期など、DX専用と思い込んでいたアホが沸いていて楽しかった >一時期など、DX専用と思い込んでいたアホが沸いていて楽しかった そんなことを楽しんでるから駄目なんじゃないの? は? OpenGL使いはDX小僧とはレベルが違うことを確認したまでですが? >>293 そんなこと確認してるから、おまえはいつまでたっても駄目なんだよ。 >>294 そんなこったからお前はDX専用と思い込んでるバカなんだよ。 >>293 1.馬鹿な人間を見つける 2.自分がその人間より上だということを認識する 3.たのしい ……たのしい、か? 馬鹿の考えることはよくわからない 何いってんのお前らw このスレはOpenGL2.0がDXなんかより優れていることを確認するスレだろ >>298 いーや、OpenGL2.0を探すスレです 遅い遅い言ってるのは、お約束を知らないから。 遅いんじゃなくて組み方が悪い。 CgやOpenGLは「知ってるか知らないか」が如実に出る。 ていうか使わない変数にまで全部リンクするっていうアレひとつ取っても変だが 知ってる奴のプログラムは速い。 >300 その「知ってる奴」は >ていうか使わない変数にまで全部リンクするっていうアレひとつ取っても変だが で重くなるのをどうやって回避してるのか教えてくれ。 おいお前ら。 GL2.0の猛者たる俺様が実用的なGL2.0解説書を執筆したるから、買え。 よし、GL2.0の猛者たる貴様が執筆した実用的なGL2.0解説書を買ってやろう。 誰もやってないし、やるつもりもない 日本人は1.2までだから。 出たとしてもぴあそんが糞訳で倍額でしょ。 いらんいらん。 ここで一句: 英語不可 GL使いの 資格無し 日本語の 利用豊富な DXがお似合いかな なにっ!!!!!!! こ、このオレがtypoするとは一生の不覚っ!!!!!!!!!! >資料豊富な 確かにWIN環境に限定して言うなら資料豊富で環境も充実している DirectXを選ぶ方が賢いだろうな。 一定のレベルを超えるとOpenGLのほうが資料多かったのになぁ……。 最近は高額書籍の解説もDirectXばかりになってきたな。 GemsとかNVidiaのアレとか 論文までくるとOpenGLばっかりになるんだけどなぁ。 つーか、ぶっちゃけ研究用途でDirectXなんて名前を出すの自体恥ずかしい。 何となく浮ついたイメージがあって、マジメな用途では言い出しにくい雰囲気が・・・ 多分ゲーム用が原点にあるからだろうけどね。 NV拡張の Fragment_Program2ってDXでいうピクセルシェーダ2.0やない。 これ、Fragment_Programと言っていいものなの。 OpenGL的にはFragment_Shaderじゃないの。 >>315 うちの教授らはゲームのゲの字を見ただけで、顔をしかめるよ。 >>317 OpenGL的にはfragment shaderはGLSL。fragment programはアセンブラ。 機能的なものとは関係ない。 ビツクリするのが、「ATI_Fragment_Shader」はアセンブラ書きしなければならないということ 名前にだまされる 今月、オレンジ本の第二版が出るのか。 日本語訳されない内に第二版が出るとは・・・。 諦めて英語版買うか。 DirectXだってPS2.0はHLSLだけでしか書けないものじゃない。 依然としてアセンブラで書ける。 面倒だと言って歩みを止め、楽なほうに楽なほうに流れていく人 面倒になると、より意地を張って前に進む人 差はデカい。 --Cg、CgFXといった用語の違いを読者に分かりやすく説明してもらえますか? Kevin Bjork氏(以下 KB):はい。いいですよ。Cg、Cgファイル、Cg言語は 本質的にはGPUを駆動するための命令ストリームを生成する目的で定義された言語仕様です。 たまに潔癖性のひとはそれはシェーディング言語じゃなくてただのストリーム・プロセッシング言語だと言って、 CgFXこそがシェーティング言語だといったりもします。CgFXは最終的な見栄えを決定づけますからね。 そしてCgFXはいわゆるカプセル化されたメタファイルフォーマットです。 これはCgプログラムとそれらに関連づけられたグラフィックステートを1つのパッケージにカプセル化して、 これがアプリケーション側で共有されることになるわけです。 マイクロソフトのFXファイルもCgFXファイルと構造は同じですが、 CgFXと呼んだ場合には、それがDirectXやOpenGLといった全てのAPI、 WindowsやMacintoshといった全てのOSで動作することを意味します。 >>324 お前のイチモツは小さい ってことは周知だよ >>324 その理屈が正しいならGNU Hurdはもっと発展してるハズなんだけどね。 なんで皆がモノリシックなLinuxを選んだかよく考えてみるといいよ。 楽なほうに流れていく人がいるという「実際の現象」 と 理想 は ぜんぜん違うもの 前者が現実の現象 のみ を言っているのに対し 後者はアホの浅知恵で何か勘違いして理想を語っている その理屈が正しいからWINDOWSがここまで広がって Linuxが超マイナーになってるわけだろw 「サーバー用では」 「組み込み向けには」 そんなこといったら C3だって小型PCで強いEDENだけで多く出てるから スタンダードなのか?と言われりゃそんなことはないわけだ 所詮サーバー用組み込み用なんざマイナーの隙間市場 ふんぞり返って誇れるものではない スキマ産業だけに供給者が少ないのでぼったくれる利点もあるけどな。 OpenGLもDirectXも自分がやりたい事を実現するための道具に過ぎない訳だから、目的にあった物を使えば良いだけの話でしょ。 >面倒になると、より意地を張って前に進む人 は、元の目的を見失ってるとしか思えない。 別にDirectXでもOpenGLでも3DAPIなんて何でも使えないと禿。 C++ちゃんと理解しているやつはJAVAが楽勝なのと同じ。 OpenGL のドキュメントが少ないもんで、Direct3D のサイトはよく見てる。 進んで使いたいとは思わないけど。Java 知ってるから、C++ はいいやみたいな。 その文章からはOpenGLかDirectXのどっちが使いたくないのか分からない。 JavaとC++の比喩も意味不明。 337は335にレスしたようだな。 初め336にレスしたのかと思った。 >>337 3DAPIなんて何でも使えないと禿。どっちを使いたいかとか関係ない。 JavaとC++の比喩が理解出来ないのはお前のC++、JAVA習得度が低いから。 / ̄ ̄ ̄ ̄\ ( 人_____,,) ブツブツ・・・ヤマト・・・ |ミ/ ー◎-◎-) (6 (_ _) ) カタカタカタ | ∴ ノ 3 .ノ ______ ヽ、,, __,ノ | | ̄ ̄\ \ / 粘着 \.____| | | ̄ ̄| / \_ | | |__| | \ |つ |__|__/ / /  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕 VISTAのことでまだ狐につままれたような気分なんだが…… OpenGLのどのバージョンに対応するかは、従来だとグラフィックカードのドライバ次第だよね なのにVISTAだとOpenGL1.4までしか対応しないという これはもうどうあがいてもVISTAをターゲットにしたOpenGL1.5以上のアプリは作れないってことでしょうか? 個人的にはむしろVISTAが動いていれば最低限OpenGL 1.4レベルが保証される という点を評価したい。 携帯とゲーム機はOpenGL 組み込みもOpenGLだ PC用ゲーム以外でDirectXの使い道あるのか? >>345 ま、強いて挙げればWindows MobileベースのPDAとかスマートフォンだな。 >>346 ほとんど負け組みだけどなWindowsMobileベースとかは。 ここ3年の戦いでMSは完全にPCだけに閉じ込められた形で.NETも終了 市場から姿を消すのはDirectXってのは決まってるんだが、MS全盛でそだった上に 語学力もからきしな世間知らずは多いからね。 日本人っていつも流行が終わった頃にこれしかないとか言ってるんだよ PCの成長はNote、それも無線LAN標準搭載のタイプだけが成長してる いまさら重いGPU前提のPCゲームでしか役に立たんDirectXなど10になろうが 市場は狭くなるばかりなのも知らない素人って多いからね。しかたない。 前世紀の遺物、デスクトップPCにしがみつく小僧たちに幸アレ 日本のPCゲームはWifi対戦が流行する、間違いない! OpenGLがここまで生き残れて来れたのは、そのPCゲームのおかげなわけだがな。 Quake1,2,3とその膨大なライセンシータイトルが無ければ 今頃NVもATIもOpenGLなんてサポートせずDirectXオンリー。 ドライバ最適化だけで高価なだけのGLカードなんて誰も買わん。 つーかPS3なんてまんまPCベースのNVGPUだろ。しかもOpenGL。 OpenGLのPCゲームが無ければ今頃ソニーはまた自社開発で 巨費投じてラブ建てて低技術のチップでもシコシコ作ってるんじゃないかね。 技術的優位性は常にデスクトップPCにある。 先端技術に付いて行けずフェードアウトした奴は、 黙って携帯で3Dでもやってりゃいいんじゃね?あの貧相なインタフェイスで。 そうか! 俺達はジョン・カーマックの手の平の上で踊らされていたんだ! John CarmackがOpenGLを見捨てた今、あとは糞NYに任せよう 技術のある会社だけが生き残る。 技術があれば例え社名は残らずとも買収されて生き残る。 ライブドアみたいな技術のない会社は、言わずもがな。 >携帯とゲーム機はOpenGL PS3以外にOpenGLを明言してたゲーム機ってあったっけ? あうしかしらんけどOpenGL ES使えるみたいなことはどっかにかいたったな >>355 任天堂のGameCubeがATIベースでOpenGLだったはず。 で、ジオメトリのパイプラインがどうのこうのでカスタマイズされてるらしい。 詳しくは知らんけど。 なんか前にOpenGL.orgのフォーラムでトピック建ってたような。 >>349 >先端技術に付いて行けずフェードアウトした奴は、 >黙って携帯で3Dでもやってりゃいいんじゃね? それはshi○zのことですか? しかし、本家スレはもとよりここですらOpenGLの中身の話題が無くなってるな。 優位性だの将来性だのの話はいっそ「OpenGLの将来性」スレみたいなの立てて みんなそこでやればどうよ? どんなの立ててもココとおんなじになるだろうね DXとGLの煽りあい >>361 スレ立ててクズどもがそちらへ移動してくれれば俺はそちらは読まないから有難いよ。w カ−マックは一応、PS3には期待している。 PS3はLinux+OpenGLなので、オープンプラットフォームというのをやってくれることを期待していると語っていた 開発のしやすさと言うのはXBOX360がダントツだが、 オープンになってくれるのなら自分の資産は放出すると。 あとは後進に任せ、みんなで発展させていけるような そのためのプラットフォームになってくれればいいとさ 話 題 が あ る だ け マ シ だ と 思 え そもそもこのスレに本当のGL2.0プログラマがいるわけねーじゃん。オレ様を除いて。 「クズども」とか言ってるのも、単なるなんちゃってGL1.5級のプログラマ。 GL2.0できない奴がGL2.0の議論できないのは当然。 DirectX vs. OpenGLの話題になるのも当然。 何故ならここは底辺の集まる2chだから―。 ちょっとみんな待って。 ここは366様を讃えていろいろご教授願おうじゃないか では366様、手始めにかっこいい炎のエフェクトの書き方お願いします ↓ More OpenGL Game Programmingを買わずに ソースだけダウンロードしてもふもふしてます。 ビギナーなぼくちんは本も買う価値ありますか? 2chのOpenGL関連スレはまさに底辺だな まぁOpenGLに限ったことではないけど OpenGL2.0からサポートしたnon-power of two textureだけど、 従来の2^nサイズのテクスチャに比べてパフォーマンスの低下ってあるのかな。 >>375 non-power of two texture、ドライバによるのだろうけど、 GeForce では低下なかった。 Redeonでは使い物にならないほど低下する。 諸君らが愛してくれたWildCatは死んだ! 何故だ!! 3dlabsなんてとうの昔に死んでるだろ。 言ってみりゃ今回のプレスリリースは葬式みてーなもんだ。いわゆるケジメ。 オイオイオイオイ だって3DlabsはATIとベッタリで、半分統合してたようなもんじゃねえか。 FireGLとWildcatは親戚みたいによく似た構造だし そもそも作ってるチームからして同じ人間多いし まあFireGLに一本化しようってことなんだろうな OpenGL2.0プログラムをやるのに適しているPCはどれ? 自作は面倒だから嫌。 一般的なPCショップや量販店にはOpenGL2.0対応PCは売ってないよ ショップブランドかBTOだ いまどき GeForce 6200TC だって OpenGL 2.0 だぞ。 いっぱいあるんじゃねーの? GeforceFX世代も、一部フル対応していない機能はあるが OpenGL2.0の機能は使えるとOGL20対応表に書いてある OpenGL2.0対応を謳っていようが、 OpenGL2.0フルフィーチャーのアプリを最大限に実行できる性能がなければ意味がない。 とだけマジレスしておく。 >>388 そうでもない。 例えばNPOT textureなんか単純にプログラミングが楽になる。 ま、プログラム書けない人には関係ないけど。 プログラマが楽になれてもユーザが楽にならなければ意味がない。 上位の機能を「使用しただけ」の糞アプリを、俗にプログラマのオナニーという。 とだけマジレスしておく。 自分が作ったアプリが>>390 の言う 『上位の機能を「使用しただけ」の糞アプリ』で図星だからって泣くなや。 お前のアプリ、使う人間はお前しかいないんだろ?藁 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 ま、プログラム書けない人には関係ないけど。 包茎は刺激に耐性が無いから、ちょっとでも痛い所を突くとすぐこのザマだ。藁 少しは痛みを我慢して皮を剥げ。できゃ一生童貞だぞ。藁 プログラマにとって楽だということは、誰でも出来る程度のレベルだということ。 上位の機能を「使用しただけ」の糞アプリを書いて満足できる、その貧弱な自尊心には感心する。 とだけマジレスしておく。 何だもう終わりか?一文を連続コピペしただけで終わりなのか? お前は所詮その程度のレベルなのか? 俺を落胆させるな。もっと吠えろ。 どうした? どうせ負け犬なら負け犬を極めた方がいいだろう? さぁ吠えろよ。明日に向かって。 >>399 おw 俺にやられて学習してやんのニヤニヤ(バカでも必死になればちったぁ学習するってことかな?) どうせ眠れなくなるのはテメェなんだがなぁ >>403 みたいな低能はこの世に腐るほど存在するわけだから、 「俺」なんて唐突に特定されても誰もお前ごとき低能は知るわけが無いんだよね。 まずは氏名・住所・勤務先・連絡先を明記してくれないかな? ん?あぁ、ごめんごめん。今思い出したよ。 >>403 って捨て子で戸籍登録されてないから正式な氏名無かったんだよね。 それにホームレスだから住所不定だし、無職だから勤務先も何も無いよね。 いや〜参ったな。いや、つまりさ、君の存在を証明するものがこの世には何一つ無いってことなのよ。 ま、今からでも遅くは無いから、正式な日本国籍を取得して戸籍登録を済ませ、 雨風をしのげる家屋に住居し、しっかりとした定職に就いてから再度来るようにと オレからはアドバイスしておく。 結局GL2.0を扱える者はだた一人、この俺っちしかいねーてことかクックック 来いよベネット! ハジキなんか捨てて、サシで勝負しようゼ! ネット掲示板でしょ?人に見せるということをもう少し意識すべきじゃねえのか? 人にとって役に立つ情報とか人が見て面白いこととか、あとは自分が聞きたい質問、 そういうものがないなら、書き込まない方がいいんじゃね? >>411 お前の書き込みが最もつまらないよ。 とだけマジレスしておく。 役に立つ情報? このスレには有益な情報を有している人間はいない。そもそも自分で探せばいくらでも出てくる。 見て面白いこと? OpenGL2.0のスレで何を期待しているのやら。そもそも自分で探せばいくらでも出てくる。 自分が聞きたい質問? 質問があるならご自由に。ただしこのスレの質を見れば有益な回答が得られないのは明らかだが。 「名無し」とやら匿名で有意義な議論ができると思い込んでいる、 その純粋培養のもやし思考には感服の極みだね。 来いよベネット!怖いのか? ナイフを突き立て、俺が苦しみもがく様を見たいだろ? ハジキなんか捨てて、サシで勝負しようゼ! >>413 ネタなくてやることないクソスレってことか。そんなところに沸いてるオマエらって何? いい加減2chなんか卒業しろ。まだ童貞も卒業してないんだろ? GL2.0もロクに使えないGL1.2の日本猿がそもそも何故このスレにいるのか 猿は猿山で毛繕いでもやってろカスが ->猿山 ttp://pc8.2ch.net/test/read.cgi/tech/1141034983 低能ごとき分際で大口叩くと猿轡かませてその未使用の息子を切り落とすぞ猿 >>425 > >>424 > お前が一番くだらない。 > 死ね。 「くっだらねースレだな」と書き込んだというだけで、なぜソイツが一番くだらないと 判断できるのかを500字程度で説明してくれ。 | よっぽどくやしかったんだろうなあ……かわいそうに…… | \_____________________________/ O o 。 ___ /rニー 、` ー、 /´/'´ _,. l,.....ヽ ヽ r''ヘ_ _ ,.r' l lヽ .i ,r '´l _. リ ! / l.〉 l,r l 、i(._` `ー-‐'ヽ./ l` ,r::'::::l !ヽ_`ヽ_,..、 '⌒r_' r‐ 、 _ i:::::;::;_;l-'´` ‐ ̄._ l _,、_'ノ- i、._ l `-、..-i' ´ ヽ_,.ゞ- 、 r ' ´ ̄ /:::::::::`ヽ ! ,..rー、 ヽ. ヽ ./ _,...-::'´:::::::::::::_;/ ヽ、 / ,ヽ. i. ヽ -r:::::'::::´:::::::::::;::::-‐::':´::::::) `‐/ 、__ ./ヽ,入_,ノ l ,r'´ ` ー ::::_::::::::::::::_;:::- ' ´ _,/ /. ヽ_ _,.. -ヘ-'  ̄ r' ´ ヽ  ̄ ヽ、 _ノ TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? いやー俺もカンファレンスに出ていたら ドリャーって声上げたかも知れん まあ「ネイティブに近い」だからプワァァーフェクツ(英語は発音大事)ではないが まぁ、君みたいな人間が出席できるところではないよね。 ageられたものはやがて落ちる。 これはかのニュートン卿が万有引力によって証明したものだ。 つまり、sage。 ならばage力がsage力を常に上回っていれば決して落ちることはないのではないか? つまり、age。 盗作ちゃんはカンファレンスにも一度たりとも呼ばれてないね。 >>443 しかしなんでゲーム板で?と思って目を通したら 最初はコピペ大王が自作自演で宣伝したんだなw 自演するやつにまともなやつはイネエ そういえば、Nvidiaのデモって全部OpenGL + Cgじゃねえか。 OpenGLで、最新トレンドのデモ出してる。 なのになんで実ゲームとなるとDirectXばっかり推奨しやがるとや? いや作れるべや 作りやすいか否かは置いておくとしてもよ いやいや、DirectXは、サウンドもネットワークもカバーしとるからな それとOpenGLを比べるのははっきり言ってかわいそう。 描画以外のAPIは、Khronosに期待してしまうんだが・・・どうなるのかね。 SDLもいいんだけど、ライセンスとか、いろいろ、あるやん? / ̄`''''"'x、 ,-=''"`i, ,x'''''''v'" ̄`x,__,,,_ __,,/ i! i, ̄\ ` 、 __x-='" | /ヽ /・l, l, \ ヽ /( 1 i・ ノ く、ノ | i i, | i, {, ニ , .| | i, .l, i, } 人 ノヽ | { { }, '、 T`'''i, `ー" \__,/ .} | .} , .,'、 }, `ー--ー'''" / } i, | ,i_,iJ `x, _,,.x=" .| ,} `" `ー'" iiJi_,ノ ぼくよしはる んで、ジョソ・カーマックはDirect3Dに行くのか? D3DとOGLを両立するのか、それともD3D一本に絞るのか。 常に最新のものを使ってゲーム作ってリリースしたいというのであればD3Dだろうが おや????? いまさらだが NV_fragment_program2 ってD3DでいうPixelShader3.0仕様かよ。紛らわしい。 NV_vertex_programだと NV_vertex_program3でVS3.0仕様なのに なぜfragment_programだけ2で3.0まで含んでやがるのか アセンブラシェーダって そげに難しいの? GLSLのほうがやたら面倒なのだが , ;,勹 ノノ `'ミ / y ,,,,, ,,, ミ / 彡 `゚ ゚' l 〃 彡 "二二つ いいぞ ベイべー! | 彡 ~~~~ミ 全部わしのせいだ!フゥハハハーハァー、 ,-‐― |ll 川| ll || ll|ミ―-、 / |ll | ヽ / ゙ヽ  ̄、::::: ゙l, |;/"⌒ヽ, \ ヽ: _l_ ri ri l l ヽr‐─ヽ_|_⊂////;`ゞ--―─-r| | / | ゙l゙l, l,|`゙゙゙''―ll___l,,l,|,iノ二二二二│`""""""""""""|二;;二二;;二二二i≡二三三l | ヽ ヽ _|_ _ "l ̄ ̄ ̄ ̄ ̄ ̄ |二;;二二;;二=''''''''''' ̄ノ /"ヽ 'j_/ヽヽ, ̄ ,,,/"''''''''''''⊃r‐l'二二二T ̄ ̄ ̄ [i゙''''''''''''''''"゙゙゙ ̄`" / ヽ ー──''''''""(;;) `゙,j" | | | ! Quakecon2006でのインタビューを聞くとDXには行かねえみたいな事を言ってるぞ。 すぐには行かないって事かもしれないが。 DirectXとOpenGLを合わせてDirect-GLみたいな物を作り 融合させればいいんだとか言ってるし >>466 いつかのFahrenheitを思い出すなぁ・・・ まぁ自社側で独自インターフェイスを備えるラッパライブラリを用意するって話だとは思うんだが。 拡張は、良きにしろ悪しきにしろopenGLの特徴で 統一性はDXの特徴 これを合わせろと GLの拡張は、あるメーカーの仕様策定を待たずに最新技術が使えるから この点はとても気に入っているし、修正や追加も非常に早い その代わり統一されていないから労力はDXの3倍 これを解消して(いいとこ取りして)合わせろとカーマックは事あるごとに言ってる ARBでの策定で済ますとなると遅過ぎるからって 今って、DXやGL自体の仕様に依存するような部分って殆どないんじゃない? 殆どがシェーダーを弄って開発でしょ?DXやGLなんてシェーダー使う為の所詮土台じゃん。 「カーマックは言っている」 「カーマックは言っている」 (´,_ゝ`)プッ (´,_ゝ`)プッ (´,_ゝ`)プッ (´,_ゝ`)プッ (´,_ゝ`)プッ (´,_ゝ`)プッ (´,_ゝ`)プッ (´,_ゝ`)プッ MFCでOpenGLの勉強を始めました。 今は、マッピングについて学んでいます。 質問なのですが gluSphere()で球を描き、そこにテクスチャマッピングをするにはどうすればよいのでしょうか? よろしくお願いします。 ここは2.0スレなのでシェーダを使うということでいいか? たぶんgluSphere()はVertexとNormalしか送っていないから、 シェーダ内で適当なTexCoordを生成してやる必要があるな。 よしはる とっとと日本から出てけよ 消えて結構 二度と帰ってくんなよ 自分の作ったものを自分で褒めて自画自賛する ↓ 盗作だと看破される ↓ 自分で自分を擁護する ↓ なおも盗作であることを広められる ↓ 削除依頼出す ↓ 却下される ↓ 逃げる GLSLの2ndEditionって1stとどれぐらい内容変わってるか 知ってる人教えて OpenGL2.0 = GLSL とか思ってる奴がここさいるだ! 112 :デフォルトの名無しさん :2005/12/18(日) 22:15:07 DoomのARB2というのは、ただのDoom内のレンダリングパスの名前で、 OpenGL 2.0とは関係ないです。 ARBというパス名はATI用でもNV用でもなく、汎用的なパスという意味合いが強いと思います。 パスは他にもNV10,NV20,R200用にそれぞれのGPUで高速に動くように機能を大幅に削ったパスも ありますが(パス名もそのままNV10,NV20,R200です)、当然かなり寂しい画面になります。 ARB2は特定のGPU用に狙いを絞っていない汎用パスのバリエーションの一つであるという解釈が 正しいと思います。 少なくともOpenGL 2.0とは関係ないです。 ただ、DoomがOpenGL 2.0の機能を使っているか?というのは難しい判断です。 製品版の最初期バージョンからGL_ARB_texture_non_power_of_twoを利用していて これはOpenGL 2.0のコアに取り込まれた機能なので、OpenGL 2.0と言えなくもないです。 Doomの場合にはただGLエクステンションとして使っているだけですが、 機能的にはOpenGL 2.0のnon_power_of_twoと(当たり前ですが)完全に同一です。 NPOTはゲーム内の環境変数でseta image_roundDown "0" にする事で有効になります。 他にOpenGL 2.0と言える要素があるとすれば、two side stencilを使っている事かもしれません。 これもGL_EXT_stencil_two_sideが拡張のストリングの中にあるかどうかを判断して使っているので、 GLバージョンを判断してこれらの機能を使っている訳ではないです。 DoomではアセンブラベースのGL_ARB_fragment_programとGL_ARB_vertex_programのサポートのみで GLSLは一切使用されていません。 最近出たQuake4ではGLSLもサポートされ、部分的に使用されていました。 まとめれば、 - ARB2は紛らわしいネーミングだけど、OpenGL 2.0とは関係ありません。 - ただDoom自体はOpenGL 2.0が持つ機能を使っていると言えます。(NPOTとtwo side stencil) - でもそれらはGL拡張のストリングを検索して使用出来るか否かを判断していて、 GLバージョンで判断してそれらの機能を使っている訳ではないです。 もう終わったネタでしたらごめんなさい。 119 :デフォルトの名無しさん :2005/12/18(日) 23:46:36 >ただDoom自体はOpenGL 2.0が持つ機能を使っていると言えます。 OpenGLの標準のコア機能の選定はまず青写真ありきではなく 各社の拡張や開発者の要望を逐次帰納的に統合・吟味して行われるのだから 拡張を使用しているからと言って、未登場の次期バージョンの機能を使用しているとは言えんだろう。 「使用していると言える」のは、その次期バージョンのコア機能の仕様選定が終了した後だからこそそう言えるのであって その仕様選定がまだ済んでいない段階では、どの拡張がコア仕様に盛り込まれるかなんてのは神(ARBの委員たち)のみぞ知る事柄。 まぁ、GLSLのように今後のOpenGLの発展にとって必須となるような拡張(OpenGL1.5当時)なら別だが。 そもそもOpenGLは業界標準という性質上、"Based On The Previous Version"のスタイルで発展していく。いわば積み重ね型。 一方、DirectXはこれとは完全に逆で、"To Be Done In The Next Version"だから、容易に過去のバージョンを切り捨てられる。 つまり、いくら拡張を使用していようが、結局OpenGLはレガシーフリーたり得ないのだから OpenGLのバージョンは、あくまでその時点で実装されているコア機能のバージョンに準拠するべき。 121 :デフォルトの名無しさん :2005/12/19(月) 01:30:52 EXT_framebuffer_objectが将来のOpenGL2.xに盛り込まれることは確実だが 「Doom自体はOpenGL 2.0が持つ機能を使っていると言える」という論理を用いると 現在、FBOを使用しているOpenGLアプリは全て潜在的にOpenGL2.xの機能を使用していることになる。 しかし、これでは収集がつかなくなるのは誰の目にも明らか(一部の馬鹿を除いて)。 「某かの拡張をしているからOpenGL2.0だ」などというのは、単なる結果論でしか無い。 拡張は拡張。コアはコア。 OpenGLのバージョンとは、とりもなおさず「コア」のバージョン。 122 :デフォルトの名無しさん :2005/12/19(月) 01:33:31 これでまたコピペ厨が粘着してきたのなら、実に救い様の無い馬鹿だと言える。 123 :デフォルトの名無しさん :2005/12/19(月) 03:28:17 だから1.5に相当するっていってるじゃん。 そもそもどっち派でもなくて悪気もないので終わりにしましょ。 「Doom3はOpenGL 1.5を利用するけど、たまたま使った拡張がのちにOpenGL 2.0のコアに取り込まれたけど それは全くの偶然による結果論でしかなくて、実際にはDoom3はOpenGL 1.5相当を利用するソフトウェア」 という事で。 OpenGLスレ Part9で識者らにより完全否定された馬鹿が 負け惜しみで何を血迷ったか特定個人に難癖付けて粘着 まさに「>実に救い様の無い馬鹿」だな どははははははは Doom3はOpenGL1.4 などと、恥ずかしい間違いを論破されて恥をかいたよしはるが また必死にいいわけか ていうかよほど悔しかったんだなw プログラムの一つもできないパクリ君の恥をさらしてあげようw 570 :デフォルトの名無しさん :2005/10/27(木) 20:57:25 ま、技術無知が自棄に反骨的なのは、この記事すらも理解できずに視野狭窄に陥ってるからだろう。 だから「シャドウボリュームに"格納"」などという技術無知や 「OpenGL1.5において、GL_SHADING_LANGUAGE_VERSIONの1.0をフルサポート」という技術無知をさらす。 言い訳が激しい。 http://www.4gamer.net/news/history/2003.02/20030207205250detail.html この記事を翻訳したのは、奥谷海人だが、 元の文は、プログラマの間ではカリスマである「ジョン・カーマック」ときている。 http://doom-ed.com/blog/category/doom-ed/john-carmack/ そもそも、この部分からして技術無知炸裂なのだ。 "ARB2はカーマック氏が便宜上名づけただけ" 何度も言うが、「ARB2」が便宜上なら、どのボードも実行できないのである。 そして自身のブログでR300やNV30が実行できるのはARB2も含む表記がある。 ここでまた、fragment_shader で高級言語を使って書けるものは fragment_programのアップデートもされないとの技術無知をさらしている。 だが、カーマックが「拡張機能」と表記したにもかかわらず「拡張機能でない」などと勘違いしたわけだ。 もし万が一、拡張機能でなかったとしても、 先の技術無知が言う「ARB2」がただの「ARB」でないことは自明であろう。 http://www.google.co.jp/search?hl=ja&q=ARB2+extension&btnG=Google+%E6%A4%9C%E7%B4%A2&lr= やはり中身はOpenGL2.0 fragment_shader である。 http://oss.sgi.com/projects/ogl-sample/registry/ 技術無知が技術無知を生む「技術無知スパイラル」、ここに至れり。 盗作、ARB2パスをOpenGL1.3だと主張するものの FP32シェーダを走らせられるのが1.5以上のみということも知らない恥ずかしい無知を晒す の巻。さすがド素人。 551 :デフォルトの名無しさん :2005/10/26(水) 23:52:25 まだ「ARB2はOpenGL2.0で書かれている」が持論の痴呆系技術無知>>166 が住みついてんのか。 いい加減、馬鹿は故郷のPCゲーム板に帰巣しろ。 1) そもそもARB2とはJohn Carmackが名付けたDOOM3における描画パスの名称である、というのは世界における常識である。 →http://atrip.net/forums/showthread.php?s=f4c16d60e67efb6a481c5da25abcce3b&postid=35074 →"Btw, ARB is extensions only. "ARB2" is carmackian for ARB + OpenGL 1.3 frag proggy" ↓ 575 :デフォルトの名無しさん :2005/10/27(木) 21:23:56 http://atrip.net/forums/showthread.php?s=f4c16d60e67efb6a481c5da25abcce3b&postid=35074 このsushi128一人「しか」言ってないのが OpenGL1.3 = ARB2 カーマック本人でさえもこんな恥ずかしいことは言わないし 信じる奴もいない。恥さらしだから 576 :デフォルトの名無しさん :2005/10/27(木) 21:26:51 っていうか、FP32使えるのは1.5からだろ ARB2パスはFP32をメインにしてんじゃん どうなってんだ 盗作、 メーカーリリースとコンシューマリリースの違いもわからないという恥ずかしい無知を晒す の巻。さすが盗作ばかりするチョンくさいド素人だけある。 746 :デフォルトの名無しさん :2005/11/10(木) 03:13:48 そもそもOpenGL2.0がnVidia・ATI双方のパブリック・ドライバに実装されたのは、 DOOM3が発売されてから数ヶ月も先のことである。 ↓ 756 :デフォルトの名無しさん :2005/11/10(木) 20:59:03 もし仮に(無論、そんなことは皆無だが)技術無知>551の言うように 開発者側がコンシューマリリース前のドライバを使わないで開発を進めていたとしよう。 この場合、当然ながらこのソフトウェアを走らせるには、このドライバに実装されたコンパイラに含まれたものしか使用できず、 ARB2パスは使用できないことになる。 技術無知>551は「DOOM3のARB2はOpenGL1.3を使用している」などと馬鹿馬鹿しくも主張しているわけだが、 そもそもOpenGL2.0というのは OpenGL1.5 + GLSL であって、GLSLがコアとして採用された のがOpenGL2.0 に過ぎないのである。こんな仕様なのに、なぜOpenGL2.0ストリングに対応したドライバなど待たねばならないのか。 さて、ここで技術無知>551以外の人間なら、この時点で矛盾に気付くはずだ。 こいつが人格障害者であることは既に十分見識しているが、 一部に真に受けている人もいるらしいので、明確な言質を与えておこうか: 俺は元より2004年5月の時点で Doom 3 は OpenGL 1.5 とハッキリ言明している。 http://web.archive.org/web/20041010085906/http ://xslgl.jugem.cc/?cid=2 まぁ、こういう人間は自作自演で牽強付会して他人を槍玉に挙げる程度の 蠢動しかできんのだろうな。嫉妬されればされるほど自信が沸くというものだ。 「1.4だ」 -> 「1.3だ」 -> FP32はどうするんだよという突込みが入り -> 1.5だ コロコロコロコロコロコロコロコロ変わる素人 FP32はどうするんだ -> 逃亡 "ARB2はカーマック氏が便宜上名づけただけ" なら 18Wheels of Steel Convoyで ARB2パスがあるのはなぜか -> 逃亡 超ド素人 ゲームメーカーにドライバリリースされるのは一般人と同じスケジュールなのか -> 逃亡 もう1年も前から8800GTX、R600に相当するものだって貸し出されてる。 もちろんその間ドライバも常に一般リリースされないものが次々できる。 「そうでなければどうやってDX10デモなんざ作れるのか」 「そうでなければどうやって作成するのか 8800GTX類のリリース後でなければ組めないならCrysisの発売日はもっと後」 「テープアウトの時期というものがわかっているのか」 ->やはり逃亡 頂点シェーダ内で計算した結果をアプリケーション側でも管理したいのですが可能なのでしょうか? 取得したい変数はattributeです。 調べてみたところ、 glGetVertexAttribPointervARB glGetVertexAttribfvARB 等を見つけたのですが、使い方が分かりませんでした。 分かる方居ましたらよろしく御願いします。 >>498 ねぇ、他の探しても全然見つかんないからこれのソース公開してよ ttp://slang.blog15.fc2.com/blog-date-20060108.html _,,..r'''""~~`''ー-.、 ,,.r,:-‐'''"""~~`ヽ、:;:;:\ r"r ゝ、:;:ヽ r‐-、 ,...,, |;;;;| ,,.-‐-:、 ヾ;:;ゝ :i! i! |: : i! ヾ| r'"~~` :;: ::;",,-‐‐- `r'^! 磯崎元洋見てる? ! i!. | ;| l| ''"~~ 、 i' | イェ〜イ! i! ヽ | | | ,.:'" 、ヽ、 !,ノ ゝ `-! :| i! .:;: '~~ー~~'" ゙ヾ : : ::| r'"~`ヾ、 i! i! ,,-ェェI二エフフ : : :::ノ~|`T ,.ゝ、 r'""`ヽ、i! `:、 ー - '" :: : :/ ,/ !、 `ヽ、ー、 ヽ‐''"`ヾ、.....,,,,_,,,,.-‐'",..-'" | \ i:" ) | ~`'''ー--- OpenGL実装のデファクトスタンダード、nVidiaによっても完全否定される馬鹿 http://developer.download.nvidia.com/opengl/specs/nvOpenGLspecs.pdf ARB_{vertex|fragment}_shader(GLSL) = "2.0 functionality" 【大論破され必死に個人粘着する低能の負け犬―まとめ】 ---------------- <負け犬の大誤謬―その1> 4Gamer(笑)の勘違い記事を鵜呑みにし、 必死に「ARB2はOpenGL 2.0のシェイダープログラムだ」など支離滅裂な主張を妄言する。 →該当記事:http://www.4gamer.net/news/history/2003.05/20030529145552detail.html <解説―その1> 「ARB2」という名称はJohn Carmackが便宜上名付けただけのDOOM3における描画パスの一種であり、 シェーダプログラムでも何でも無いことは火を見るよりも明らか。 こうした初歩中の初歩の事柄を理解できないのは低能以外の何者でも無いこともまた自明。 ---------------- <負け犬の大誤謬―その2> 上記の間違いを指摘されると、描画パスの「path」を「pass」と勘違いした挙句、 「他のPCゲームでもARB2パスがあるのは何故だ?」と疑問を呈し自らの低能っぷりを晒す。 <解説―その2> 他のPCゲームにおいても多数の幅広い環境をサポートするために複数の描画パスを用意するのは通例であり、 またid SoftwareはOpenGLを使用するPCゲーム開発の尖鋭的存在であるから、他社がDOOM3を先例として それに倣うのは至極当然であり、また事実そうしてきた過去がある。そもそもARB2は描画パスの名称に 過ぎないわけであるから、「他のPCゲームでも云々」というのは「ARB2はOpenGL 2.0の云々」などという 誤謬と何ら因果関係は無いし、またそれを証左するものでも何でも無いことは明らか。 <負け犬の大誤謬―その3> またしても4Gamer(笑)の勘違い記事を引き合いに出し、 「カーマックはDOOM3の発売前からOpenGL 2.0で開発していた」と鼻息を荒くし、 「DOOM3はOpenGL2.0だ」などと当初の主張を歪曲するが、実際にはプロトタイプ 段階での実験に過ぎず、製品版では使用されないもので大恥をかく。 →該当記事:http://www.4gamer.net/news/history/2003.02/20030207205250detail.html <解説―その3> 確かにCarmackはDOOM3の発売前に3DlabsからOpenGL 2.0のプロトタイプICDとハードウェアのP10を受け取り、 それを使用して新しいバックエンドを書いているが、そこにおいてCarmackが言及している 「the prototype OpenGL 2.0 extensions」とは3Dlabsが主体となって選定が進められてきたARB_*_shaderであり、 NVIDIA先導の低級ARB_*_programでは無い。事実、ARB2パスのシェーダはARB_*_programで記述されており、 後にOpenGL2.0のコアとなるARB_*_shader(GLSL)は使用されていない。 ---------------- <負け犬の大誤謬―その4> 以上の事実を指摘され大論破されると、もうそれ以上屁理屈を出せなくなりコピペ連投に走る。 さらに識者らにより主張が決定的に否定されると個人粘着に走り、人格崩壊に至る。 <解説―その3> 低能であればあるほど議論対象よりも個人に粘着するのは世の常であり、 また逐一教育してやらないと理解できないのが低能たる所以。 戦前から続く先祖代々の墓が日本国内に無い三国人の末裔ごときの分際で「チョン」などと揶揄する様は、 まさに三国人DNA炸裂と言えよう。 __■■■■____________■__________■__■__ _■___■_____■______■__________■___■_ ■■■■■■■■___■______■__________■_____ _■_____■___■__■■■■■■■___■■■■■■■■■■■ _■■■■■■■___■______■__________■_____ _■_____■___■______■_________■_■____ _■■■■■■■___■______■_________■_■____ _■_____■___■______■________■___■___ _■■■■■■■___■______■________■___■___ _■_____■___■_____■________■_____■__ ■_______■_____■■■_______■■_______■■ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ またド素人負け犬が論破されるw http://oss.sgi.com/projects/ogl-sample/registry/ARB/fragment_program.txt ATI_fragment_shader interacts with this extension. NV_fragment_program interacts with this extension. OpenGL2.0とはGLSLだけと思ってる素人は NV_fragment_program2どころかNV_fragment_programの素性も知らんとw ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ _■_____■____________■_■_____■■■■___________■_____ __■__■■■■■___■■■■___■__■___________________■_____ _______■_____■__■___■_________________■■■■■■■■■■■ ____■■■■■■■__■__■_■■■■■■__■■■■■■■_____■____■____■ ■■■__■___■___■__■___■__________■______■____■____■ __■__■■■■■___■__■___■_________■_______■____■____■ __■___■■__■__■__■__■_■_______■■_______■■■■■■■■■■■ __■__■_■■■___■■■■__■_■______■__■___________■_____ __■_■__■_■■_______■___■____■___■___________■_____ _■_■___■__________■___■___■____■___________■_____ ■___■■■■■■■______■_____■_■______■■■________■_____ ___■________■■_____■_____■_____ ___■_____■■■_______■_____■___■_ __■___■■■_■_______■__■___■_■■__ __■___■___■_______■___■__■■____ _■■___■___■_____■■■■■■_■_■____■ _■■___■■■■■■■■■________■_■____■ ■_■___■___■_______________■■■■■ __■___■____■_____■■■■■■________ __■___■____■_____■____■__■_____ __■___■__■■■_____■■■■■■__■___■_ __■___■■■___■_■__■____■__■_■■__ __■_■■■_____■_■__■■■■■■__■■____ __■__________■■__■____■__■____■ __■__■■■■■■■■_■__■____■__■____■ __■______________■__■■■___■■■■■ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ________________■■■■■■■■■■■■■■_________■_______ _■■■■■■■■■■■■■__■____________■_________■_______ ________________■____________■_________■_______ ________________■_■■■■■■■■■■_■_________■_______ ________________■_____■______■________■_■______ ________________■_____■______■________■_■______ ________________■_____■______■________■_■______ __■■■■■■■■■■■___■__■■■■■■■■__■_______■___■_____ ________________■_____■______■_______■___■_____ ________________■_____■__■___■______■_____■____ ________________■_____■___■__■______■_____■____ ________________■_■■■■■■■■■■_■_____■_______■___ ________________■____________■____■_________■__ ■■■■■■■■■■■■■■■_■____________■___■___________■_ ________________■■■■■■■■■■■■■■__■_____________■ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 低能個人粘着三国人 _____■____________■________■■____■_____________■__ ■■■■■■■■■■■______■_■____________■_■____■■■■_■■■■■■ ■_________■_____■___■_____■■■__■___■____■___■__■_■ __■■■■■■■______■_____■________■_■■■_■___■___■__■__ _____________■■_■■■■■_■■__■■■___________■■■_■■■■■■ ■■■■■■■■■■■_______■___________■■■■■■■___■_■_■_■__■ ___■__■___________■_______■■■_■_■_■_■__■■_■_■_■__■ ___■__■________■■■■■■■________■■■■■■■___■_■_■_■_■_ ___■__■___________■_______■■■_■_■_■_■___■_■_■__■__ __■___■___■_______■_______■_■_■_■_■_■___■■■_■_■_■_ ■■____■■■■■___■■■■■■■■■___■■■_■____■■______■_■___■ ここ、ム板なんでwikiの4gamerか専用項でもつくれ またド素人負け犬が論破されたw http://oss.sgi.com/projects/ogl-sample/registry/ARB/fragment_program.txt ATI_fragment_shader interacts with this extension. NV_fragment_program interacts with this extension. OpenGL2.0とはGLSLだけと思ってる素人は NV_fragment_program2どころかNV_fragment_programの素性も知らんとw ていうか同じ「ARB2」のQuake4、PreyはGLSL使ってるしw 【大論破され必死に個人粘着する低能の負け犬―まとめ】 ---------------- <負け犬の大誤謬―その1> OpenGLがなんであるかも知らないド素人のくせに ARB2は「openGL1.4だ」「OpenGL1.3だ」などと恥ずかしい大間違いを披露。 <解説---その1> 「ARB2」という名称はJohn Carmackが名付けた、DOOM3における描画パスの一種であり、 FragmentShader2.0とGLSLを使用しているシェーダプログラムであることは火を見るよりも明らか。 というかシェーダでなければパスではないw こうした初歩中の初歩の事柄を理解できないのは低能以外の何者でも無いこともまた自明。 ---------------- <負け犬の大誤謬―その2> 上記の間違いを指摘されると、描画パスの「path」を「pass」などと妄想した挙句、 その証拠を求められるとまったく出せないチョン。 <解説―その2> 便宜上名づけただけなら他のゲームでは絶対に出ないはずだが、現にある。 つまり便宜上では絶対無いことを如実にあらわしている。 そもそもOpenGL1.3、もしくは1.4ならFP32シェーダは実現できない。ここからもバカのド素人ぶりがうかがえる。 OpenGL2.0対応を謳うゲームにおいてARB2パスが使用されているのはまさにARB2とはOpenGL2.0パスだからである。 どこぞの技術無知のトーシローはGLSLだけがOpenGL2.0だと思っている ようだが、GLSLは1.5でも使用できるので2.0だけの特権ではない。 素人の恥ずかしい妄想と何ら因果関係は無いし、またそれを証左するものでも何でも無いことは明らか。 <負け犬の大誤謬―その3> またしても4Gamerを勘違い記事(笑)というのに何の証拠すら出せず、 「カーマックはDOOM3の発売前からOpenGL 2.0を使えるわけがない」と鼻息を荒くし、 「DOOM3はOpenGL1.3だ」などと当初の主張を歪曲するが、実際には開発段階から2.0を使用しており、 ARB2パスとして世に出した。 コンシューマリリースとベンダリリースすらも知らずに大恥をかく。 →該当記事:http://www.4gamer.net/news/history/2003.02/20030207205250detail.html <解説―その3> 生まれて3秒の赤子でさえも知ってるようなベンダリリースさえも知らないのは例のド素人、つまりチョンだけである。 そこにおいてCarmackが言及している 「the prototype OpenGL 2.0 extensions」とはもちろん2.0のコアである。 NVのARB_*_programはもちろんFS2.0、FS3.0を実現するものであり、当然ながらGLSLを利用できる。アセンブラシェーダも利用できる。 ATi用にはARB_*_shaderが使用されているがこれも同じことである。 ここからも、Doom3にGLSLが使用されていることが伺えるしQuake4やPreyでも実際に利用されているのである。 素人チョンが妄想するようにARB2がGLSLを使用できなければこんなことはできない。 ---------------- <負け犬の大誤謬―その4> 以上の事実を指摘され大論破されると、もうそれ以上屁理屈を出せなくなりコピペ連投に走る。 さらに識者らにより主張が決定的に否定されると個人粘着に走り、人格崩壊に至る。 <解説―その3> 低能であればあるほど議論対象よりも個人に粘着するのは世の常であり、 また逐一教育してやらないと理解できないのが低能たる所以。 戦前から続く先祖代々の墓が日本国内に無い三国人の末裔ごときの分際で「チョン」などと揶揄する様は、 まさに三国人DNA炸裂と言えよう。 OpenGLのいいところ 拡張 VTFとかフラグメントシェーダの最新バージョンなど便利なものが、 APIのメジャーアップデートを待たずに使える OpenGLの悪いところ 拡張 こいつのせいで、多くのパスを用意しなければならない 俺はどうすればいいんだあ〜 安居院せんせいの本でとりあえず勉強しておこう しかしあの本は、分かりやすいのだが初心者向けに なるだけポインタ無しの仕様ゆえ、却って関数の流れが 掴みにくかったりする DisplayList使ったら頂点シェーダーうまく働かないけどなんで? Wiiが勝利したというなら雪崩を打ってPS2から、もしくはPS3からの乗り換えタイトルがあるはず という口喧嘩のさい 883 名前: 名無しさん@七周年 投稿日: 2006/12/02(土) 02:53:46 ID:ZXHK4NoG0 日本では今日発売されたばっかなのに 乗り換え表明するかアホwwwwwwwwwwwww ↓ 895 名前: 名無しさん@七周年 投稿日: 2006/12/02(土) 02:56:16 ID:dfRV6Av70 なになになに? メーカーサイドは「本体発売後」でないと開発できないとでも言うのか?w 乗り換え表明なんか発売前からいくらでもできるわなw チョンはそんなこともわからんと?w なんとなく 「グラフィックスドライバがメーカーに提供されるのはリリース後!」 メーカーに提供される時期と一般ユーザーに提供される時期が一緒 と主張して憚らないよしはる思い出した。 じゃあどうやって開発してるんだ、リリース後ならそのスケジュールじゃ発売できない というと逃げるあたりもまったく同じ ttp://www.4gamer.net/news.php?url=/specials/3de/geforce_8800/geforce_8800_003.shtml >GeForce 8800シリーズはDirectX 10世代のSM4.0対応GPUとして >一番乗りを果たしたわけだが,課題がないわけではない。 >それは,DirectX 10やSM4.0といったテクノロジーが,Windows >Vista上でしか享受できない点だ。待望のジオメトリシェーダは >DirectX 10でないと利用できないため,いきおい,ジオメトリ >シェーダを駆使したグラフィックスはWindows Vista環境でしか >楽しめないのである。 ジオメトリシェーダがVista「でしか」使用できないと主張する馬鹿ライター 4gamerなんて低脳ライターしかいないんだから、放置しておけ。 おいおいおいおいおいおいおいおいおいおいおいおいおいおいおーーーーーーーーーーーーーーーーーい OpenGLはッ????????????????????????????????? APIの正式策定を待たずして!!!!!!!!!!!! 最新テクノーロズゥィーを享受できる我が愛するOpenGLはッ????????????????????????????????? すでにOpenGL/GLSLでジオメトリシェーダーを利用できるわけだが。 【ネガティブ派遣根性チェック】 3つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。 □派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする □派遣先から「いつまでもここで仕事してくださいね(安い金でw)」と言われている □自社に仕事を持ち帰れるように言われるとムカつく □自社で仕事なんてできるわけがない □派遣労働の問題点の話題が出ると感情剥き出しにする □派遣労働の問題を指摘する人は嫌いだ □派遣先には仕事だけでなく自分のプライベートについても指示して欲しい □自分の月額金額を知らない □派遣先社員より自分の生涯収入が低いのは当然だ □派遣先に尻尾を振り、いつまでも派遣を続けることが大切だ nVidiaのカード以外で動かすならCgは事実上終わってる でも将来CgがGLSLコードを吐く様になったら復活するかもしれない >>539 あほな質問かも知れんけど Cg とGLSL、どっちも最適化したプログラムを組める(ようになった)として 同じことをやって、実行速度に違いはアルですか? ↑ うっかり >>539 へのレスにしちゃったけど名指しで聞いてるわけじゃないです >538 もう最新バージョンで吐けるから >540 実行速度がほしいならDirect3Dやったほうがいい お前らまだOpenGLなんか使ってんのかwwwww >>542 >>544 市場のゲームじゃOpenGLエンジンのほうが速いのはなんで? APIは速度に殆ど関係ないと思うが・・・ 組み方が悪いんだろ。 そもそも、最近はシェーダーで処理するのが一般的なんだから、APIがなんだとか全く関係ないw 両方で組んでみろとは言わんからせめてAPIの仕様位は調べてから発言したほうがいいんじゃないかね ATIだと、 mat3 m3; mat4 m4; m3 = mat3( m4 ); エラーになりませんか? (TT なんで〜〜 GPUベンダがそれぞれGLSLコンパイラを書いてるからグラボを変えたらエラー吐くのはよくあること 補足するとNVのコンパイラがGLSLの仕様より融通が利いてるだけで別にATIが悪いわけじゃないよ 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 ); ができると書いてあるけが、古い資料だから信用するな。 >>551 NVのコンパイラなら float3 と書いてもエラー無く動くのは、笑った 頼むからコンパイリンガーは 「自分がどういう最適化をしたのか」 というのを分かりやすく出力して欲しい。 何もエラー出さないから、 今後の参考にならない。 mat2x3 とか使えないけどなぜだろう。 わかる人いる? >>556 それは、OpenGL 2.1 なんだけど、お前さんのグラフィックボードは、OpenGL2.1に対応してるのか? >>556 そもそもmat2x3みたいな行列ってどういう時に便利なの? 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); これじゃだめなんだよね。 イメージも消えちゃう。イメージの背景は透明にしてイメージのみ残したいんだけど。 2.0スレ向きの話題ではないな。 glTexEnvの仕様をググってinternalFormatとGL_TEXTURE_ENV_MODEの関係を よく調べてから他のOpenGLスレへどうぞ。 >560 sage の使い方も覚えてね。 glTexImage2D 関数で RGB 設定でテクスチャデータを送ってるから、 テクスチャのアルファは、1.0 その設定では、 glEnable( GL_ALPHA_TEST ); の意味がない。 GL_ALPHA_TEST は、glAlphaFunc関数で、描画しないアルファ値を 設定できるが、ポリゴン全体が同じ値のアルファ値では意味がない。 GL_BLEND は、glBlendFunc関数で背景と色を重ねる設定ができる ので、目的にあわせて設定を変える必要がある。 glTexEnvの設定は、ポリゴンとテクスチャの色を重ねる設定で、 そのままでも良い。 一番の問題は、テクスチャデータにアルファ値が無いことだよ。(^^; 次は、OpenGLスレ Part10 へ質問してください。 >>560 GL2.0 でやろうとしているなら、TexEnvが FragmentShader なのは当然として、 AlphaTest の機能は FragmentShader 内で discard してもできるし、 もちろん AlphaTest を使ってもできる。 OpenGL-ES 2.0 だと AlphaTest 無いから、前者で実現するしかないけど。 使える実装があればいいものだと思う。 それはOpenGL界隈全体に言えるけど。 てか誰かオープンソースでEGLの実装してくれ。 ARB_fragment_programって何も明示しないと最低でも24bit浮動小数点精度を要求される これって標準で、D3DでいうところのPixelShader2.0ができるということでわ????? D3DだとPS2.0からはFixedPoint精度シェーダを使用できないが OpenGLだと明示すればhalfもFixedも使用できる点がゴイスー マルチスレッドOpenGLってアップルも実装しているらしいけど実際に速いの? いやー実際参った Fixed point を 修正された点 と直訳されたときは!!!!! だから直訳組は嫌いなんだ!!!! 直訳っつぅかなんつーか・・・ そのひとは固定小数点というものを知らないんだろうね。 Java のリファレンスなんかにもひどい訳語があるよ ttp://java.sun.com/javase/ja/6/docs/ja/api/javax/sound/midi/Instrument.html >計測を使用して音を出すには 意味わかんね スレ違いすまそ fixを修正って意味で使ってんのはコンピュータ分野の一部分だけなんだよね >>572 手元の英英辞典では1番目の語義に mend or correct something: to repair, mend, or correct something って出てきたんですけど・・・ >>573 572が言いたかったのは、「コンピュータ分野の一部分」じゃなくて 「コンピュータ分野では一部分」って意味なんじゃなかろうか でも個人的な感覚では、「修正」の意味の方が頻度高い気もするけど ていうか fixed point くらい(この分野の)常識として訳して欲しいよね floating point は一体どう訳したんだろう? > Fixed point を > 修正された点 ワラタ そんなの、海外サイトをふだんから見ない俺でもわかるのにw RapidMind やってみた、 GPGPUやるんだったら Cg GLSLよりかなり組みやすいけど 速度的にどうなのかはまだ分からん やってる人いる? 当方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チュートリアルを見ていて、明示的にどれとどれが対応するのか、などが描いていなくて… よろしくお願いします。 どれとどれを対応させてもいいし、テクスチャなんか参照せずに他の用途に使ってもいい 組み合わせは自由 すべては作るシェーダ次第 すみません、もう少しわかりやすくお願いします… 対応させてもいい、とありますがどのように対応させるのでしょうか たとえば上記のように宣言して float2 texc = ((uv2.xy / uv2.w) + 1) / 2; とした場合、このtexcに何が入っているのかわからなくなってしまって。 言い忘れていましたがこれはフラグメントシェーダーで vertexシェーダーの方では float4 position : POSITION; float4 color : COLOR; float4 texCoord : TEXCOORD0; をアウトプットしています。 それは単に ((uv2.xy / uv2.w) + 1) / 2 の計算結果が入ってるだけで、どのテクスチャも読んでない Cgあんまり詳しくないけどサンプル眺めてみた限り、テクスチャを読み込んでる部分では tex2D とかの関数を呼んでると思う 元にしたソースを見ていましたら vertexシェーダー から fragmentシェーダーへ値を>>589 の値を送っているというのがわかりました。 float2 texc = ((uv2.xy / uv2.w) + 1) / 2; には vertexから送られてきたuv2の2Dテクスチャ座標が入っていました。 確認なのですが、vertexで抜けてきたものをフラグメントでは扱う、ということですよね。 なんとかまとまってきました。 ただ、それでもvertexシェーダーで、uniformもしていないのにtexcoord0とかが呼ばれたときに それが何を指しているのかがわからない… すみません…混乱しすぎて。睡魔も着てしまってわけがわからなくなっています。 セマンテックが何を表しているのか、図で説明してくれてるものがあればいいのですが。 OSITIONもCOLORも、画面の何を指しているのかわからないままサンプルいじくってるので… CgUsersManualちゃんと読めば書いてある プロファイルにもよるが、OpenGLならarbvp1/arbfp1かvp40/fp40辺りだろうから Appendix B Language Profilesのarbvp1とarbfp1のBindingsの項を読んでみ openglの疑問はwww.opengl.orgに行ってspecification等をちゃんと読めばほとんど解決するだろう。 まずはレンダリングパイプラインを理解することが大切だと思うよ。 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 になるのです。なにか制限とかってあるのでしょうか? タブが消えてしまった orz void main(out float4 color : COLOR){ float i; float4 totalCol = 0; for(i = 0; i < 200; i++){ totalCol += 0.001; } color = totalCol; } こうです。 あれ? スペースも消えた。 Live2ch で書き込んでるせいですかね。 ごめんなさい。 ARBFP1というかARBFragmentProgramは動的ループをサポートしてないから コンパイル時にループを全部展開されて命令数が足りなくなる よって動的ループをサポートしてる他のプロファイルを使いましょう ありがとうございます。 やっぱり制限数があるのですね。 他のプロファイルを試してみます。 nvidiaのfragment_programっておかしくね?? これだと、なんか固定機能しか使えないように見えるが 実際PS2.0できるじゃん。 fragment_program2だとPS3.0だし ここは全員でおかしいと主張すべきだ。 何がおかしいんだか分からんが、それならば NV_geometry_program4とかNV_fragment_program4とかNV_vertex_program4を 使えばSM4.0相当になるうえにWindowsXPでも動いてしまう この方がおかしいと思わないか? もっと分かりやすくすべきだ。 固定機能しか使えないのならば、fragment_program_kotei_fanction とか、すべきだ。 PS2.0なら、fragment_program2 PS3.0なら、fragment_program3 とわかりやすくすべきなのだ。 だから、ARB_fragment_programがPS1.1までとかいう、変な大間違いが出てくるのだ。 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までしか展開できてないようです。 続き で、以下のようにループ部分を分割し、試しに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 だったら、こういうでかいループも処理できるんでしょうか? fp40のループは最大256ループまでだそうだ GeForce8系で使えるgp4fpなら制限無しだな 正直MAXまでの何かってのはやってはいけないことだな 例えば命令スロットが512なら、 512を目一杯使わねばならない状態になるのはいかんこと。 リアルタイムレンダリングみたいな用途じゃ無いならいいんじゃない むしろGPGPUやオフラインレンダリングとかなら出来るだけ詰め込んで GPUに処理を肩代わりさせたいんじゃないのかな 256まででしたか。 とりあえず分割ループでごまかすことにしました。 8800欲しい・・・ ちなみに、GPGPUなプログラムです。 main(out float4 color){ TexColor = tex2D(tex, texcoord);// テクスチャの色 PolColor = Lighting();// ポリゴンの色 color = TexColor * PolColor; } Cgのフラグメントシェーダの色々省略したコードなのですが、テクスチャをマッピングしないポリゴンがある場合、 colorが変な色になります。ポリゴン毎にテクスチャの存在の可否を指定する変数を渡して if(texExist) color = TexColor * PolColor; else color = PolColor; とすれば意図通りの動作はするのですが、このような処理にするしかないのでしょうか? テクスチャ設定してないのにテクスチャ読めと命令してるんだから変な色になるのは当然だろ テクスチャ無い時はサンプリングしないって分岐はごく自然な処理だと思うが 他にどうなって欲しいてっんだ? >>612 分岐処理が嫌だったらシェーダ2種類作ったらいいんじゃない? >>615 それが一番楽っぽいな。 余分な負荷は気にしない。 >シェーダ2種類作ったらいいんじゃない? 2種類をCgランタイムでどう呼び出すのかわからない テクスチャの有り無しでcgBindProgramに渡すプログラムを変えればいいだけだよ >>615 >>618 今は cgGLBindProgram(); sceneGraph->DrawAll(); cgGLBindProgram(NULL); こんな感じで全部のオブジェクトを一気に描画してるので, シェーダ2種類作ってポリゴン毎にバインドするシェーダを切り替えるのは 遅くなっちゃうのかなと思って他にいい方法がないか考えてました。 頭で考えてただけで実際遅くなるかとかの検証はしてなかったのでやってみます。 書いてて思ったんですけど同じマテリアル(テクスチャ)を使う ポリゴンをグルーピングしていればシェーダ切り替える方法は 使いやすそうですね。 どっちのやり方も参考になりました、ありがとうございます。 描画時にマテリアルでソートするのは高速化の常套手段だね コンパイルすると Error: 'C:\A\TOOLS\BCC\LIB\GLU32.LIB' contains invalid OMF record, type 0x21 (po ssibly COFF) と出ます IMPLIB glut32.lib glut32.dll をして、glut32.libを上書きしてるんですがダメです エラーをよく読め・・・ glut32.lib じゃないだろう ttp://www.kumaryu.net/cgi-bin/diary/?date=20080804#p02 S3本気だなー ATIはいつ本気出すんだー 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もな… AMDはさっさと拡張の仕様を公開しろ。 ドキュメントがない拡張が何個溜まってると思ってるんだ。 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/ opengl.orgのmessage boardでは不満の嵐だな 「散々待たせといて結局これかよ!」みたいな せめて3.0で削除された仕様は書かないでおいてくれると読み易かったんだがな あとせめてテクスチャ回りを整理してほしかった OpenGLnのmain関数をスレッドで呼び出して使おうと思っているのだが、display()関数のオブジェクトカラーを引数で渡した値で更新したいんだ。 マルチスレッドで値を渡すことはできるのだが、OpenGL側でどうやって、display()関数に値を綿したらいいのかわらかない。 つまり、 プログラム1 --> OpenGLプログラム(スレッドで生成) ▼ ▼ 値の更新 色変更 ▼ ▼ 値の更新 色変更 … … ってことをしたいんだ。 glRotatef(90,1,0,0); glutSolidCube(1.0); このあとに glTranslatefかglrotatefを適当にいれて glSolidSphere(1.0,10,10); より立方体の回転起動に垂直の起動で球が回転するようにするには どうやればいいですか? glRotatefとglTranslatefを組み合わせてx軸周りの回転移動をy軸周りの回転に させることはできますか? glPopMatrix()とglPushMatrix()を使わないで GLSLで色を出力するとき、というか、OpenGLの質問なんですが、 OpenGLでは各色の値の範囲が0〜1ですが、これってGDI上での0〜255の範囲に リニアに一致する訳じゃないのでしょうか? 256*256のコンテキストを作り、全面ぴったりのポリゴンを張って、フラグメントシェーダーから gl_FragColor = vec4(gl_TexCoord[0].s, gl_TexCoord[0].s, gl_TexCoord[0].s, gl_TexCoord[0].t); として色とアルファの増え方を見てみたのですが、どうもジャギっててきれいに0〜255の範囲で 増えてるわけではないみたいなのですが… コンテキストと同じサイズのGL_NEARESTなテクスチャを張った場合はちゃんと256*256の範囲 全体が張られているのでテクスチャ座標がずれてるわけでもないみたいです。 あだ、ここGL "2.0"スレだった orz GLスレの方に行ってきます orz スレ汚しすみませんでした… DirectX ばっかりで OpenGL なんて一生触ることは無いと思ってたが Linux絡みでJOGLで開発することになった 調べてみたら、OpenGL も色々面白そうだな 名前が違うだけで、実行するハードウェアの中身に対するフォーマットは一緒だからな。 OpenGL Vertex Buffer Objectについての質問があります。 glBufferData()で,頂点データをグラフィックボードのメモリに転送(確保?)した後, プログラム側の頂点データが更新されたとします。 この更新された頂点データを,グラフィックボードのメモリに転送するわけですが,どのようにすればよいのでしょうか? いったんglDeleteBuffer()でバッファを消して,新たにバッファを作成し,glBufferData()で転送しなおすのでしょうか? それとも,既に確保されている領域に上書きするような方法があるのでしょうか? ・glBufferDataでもう一回転送する ・glMapBufferでDMA転送する ・glMapBufferRangeで更新が必要な部分だけDMA転送する ・いっそデータの更新をCPU側でなくTransform Feedbackを使ってGPU側で行う glTexSubImage()でテクスチャの一部を書き換えられるのと同じように、 VBOにも glBufferSubData() があるよ。 書き忘れ。 Buffer全体を書き換えたい、あるいはBufferのサイズを変えたいなら、 わざわざDeleteしなくても、普通に glBufferData() で上書きしてやればいいよ。 これも考え方はテクスチャと同じ。サイズが変わるとパフォーマンスは落ちるでしょうね。 なるほど。色々な手段があるのですね。 ありがとうございました。 例えば、direct x使ったPCゲームで全画面表示に切り替わるけど、 openglでも同じことできる? シミュレータが作りたいんだけど。 最近は、アフィン変換はつかわずにクォータニオンってのが主流なの? 試しにZ軸によるs度の回転(右手座標系)を計算してみたら sin(s)*y-2*(x/2-(cos(s)*x)/2)+x,-2*(y/2-(cos(s)*y)/2)+y-sin(s)*x 簡約すると x' = sin(s)*y+cos(s)*x y' = cos(s)*y-sin(s)*x z' = z となって普通の回転行列の計算と同じになた 普通に軸にそって回転するだけなら 通常の回転行列を使う方が良いのかな 軸まわりの回転ならsin、cosの手計算でもいいと思うが、任意の軸まわり回転をオイラー角でやるとジンバルロックっていう問題が出てくる。 あとクォータニオンを使う一番のメリットは2つの回転位置の補完を球面線形補完による演算で求められることじゃないかと思う。 いまさらopen glとかVRMLとか意味あるの? OpenGLとVRMLを並列で語るとか意味あるの? VRMLは後継が出てたはずだよね、名前忘れたけど まあ今更OpenGLとかDirect3Dとか言っても意味ないわな 中身ほとんどいっしょだし 流れとはまったく関係ないどころかスレとも関係ないが PowerVRがなんだかんだでまた注目されつつあるな その PowerVR について質問させて下さい。 iPhone3GS や iPod touch 3G で使われているらしい PowerVR SGX を内蔵し、 Vaio Type P や Dell Inspiron Mini 10/12 等のネットブックで採用されている intel GMA500 ですが、 カタログスペック上は OpenGL2.0 対応を謳っているものの、Windows XP/Vista 上では glGetString(GL_VENDER) が Microsoft、 glGetString(GL_RENDERER) が GDI Generic、 glGetString(GL_VERSION) が 1.1.0 を返してきます。 Intel で配布されている開発者向けの 2009/9/13 時点の最新ドライバを入れても同じです。 Vista 32bit 用: ttp://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17995&lang=jpn XP 32bit用: ttp://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17992&lang=jpn http://software.intel.com/en-us/blogs/2008/10/22/where-can-you-find-a-mid/ こちらの阿鼻叫喚スレのように、GMA500 での Windows 向けドライバによる OpenGL2.0 サポートは「ない」と言うしかないのでしょうか…。 また、今後のサポート予定について事情をどなたかご存知でしたら教えて頂けると嬉しいです。 ちゃんとOpenGLのコンテキストを設定した後でglGetStringを実行してるんだろうな? GDI Genericじゃ2.0以前にソフトウェアレンダリングだぞ。 >>663 はい、ChoosePixelFormat(), SetPixelFormat(), wglCreateContext(), wglMakeCurrent() が 成功したことを確認してから glGetString() を実行しています。 (しないと手元の環境では NULL が返ってきました) ttp://udetaco.ddo.jp/OpenGL-desktop-overlay-test/ VisualStudio2005用プロジェクト一式とバイナリをこちらに置いてみましたので、 ご確認頂ければ幸いです。 testDesktopOverlay-20090913.7z を解凍した後、 testDesktopOverlay\application\RetrieveOpenGLInfo.cpp 内の RetrieveOpenGLInfo::retrieve() をご覧下さい。 glInfo.exeとかでチェックしても、GMA500はGDI Genericを返すよね・・・ オンボーロどころかまともな素材をダメにするとは・・・Intel始まりすぎだろ。 GMA500はタイミングによってはテクスチャのバインドに失敗する (glBindTextureが正常に動かない)こともあったりして、最悪だよ。 OpenGL2.0サポート?無理無理。 あれはOpenGL1.1すらまともにサポートできてない。 ttp://www.gamedev.net/community/forums/topic.asp?topic_id=545140 こちらでも OpenGL 開発を期待して netbook を買った人が ドライバの GL 未サポートに怒ってる模様…。 >>667 glGetString(GL_RENDERER) は GDI Generic よりマシな名前を返してきますか? Mac OS Xでやってる方はいらっしゃいませんでしょうか? テクスチャの扱いが違っていて困っています。 自己解決しました。 非2^nサイズのテクスチャの生成に GL_TEXTURE_RECTANGLE_EXT を使っていたのですが、これを使うとだめだったようです。 >>671 2.0以降なら2^nでなくても良かったような。 GL_TEXTURE_RECTANGLE_EXT はMIPMAP生成出来ないから GL_TEXTURE_MIN_FILTER を GL_NEAREST にしないと駄目だったような。 OpenGL 3.2はやんないの? 機能省略かれちゃった奴 3.2はどっちかというと省かれるはずだったのが戻ってきちゃったんじゃないか? ですな。非推奨だが互換性を確保した、というような趣旨のアップデート。 >>675 考えて見れば、三角形一枚書くのにシェーダ書いてVBO作って…じゃ、 CG屋やゲーム屋以外の、「単に可視化プログラムを書きたい研究者や技術者」が 使わなくなってしまうからなあ。 自分もそのタイプのプログラマなんだが、OpenGLはそういう方面の需要がDirectXに比べて大きいと思う。 「単に可視化プログラムを書きたい研究者や技術者」 はopenGLを直接使わずにハイレベルなライブラリ(open scene graph等)を使えばええんでない? Compatibility Profilesは古いコードを使うためとか openglを勉強し直すのが面倒な人とかのためにあるんじゃないだろうか。 最近OpenSceneGraphさわり始めたけど、ホントGLUTとかで遊んでた全てが無駄に見えてきたよ。 OpenSceneGraphによる「手抜き」OpenGL入門 が必要になるな OpenGLで図を作成して、latexの論文に導入したい者ですが、質問よろしいでしょうか? GL2PSというものを用いて、epsで図を出力することには成功したのですが、 文字列も一緒に描画したいと思い、gl2psTextという関数をつかってみたところ、 フォントがしょぼくて、論文に用いるには抵抗があります。 Times New Roman で文字列を描画したいのですが、どなたか解決法をご存知ないでしょうか? GL2PSがマイナーなのか、ぐぐっても中々情報が出てきません。 よろしくお願いします。 サーセン。自己解決しました GLint gl2psText( const char *string, const char *fontname, GLint fontsize ); が宣言なので、 GLint gl2psText( "X", "Times-Roman", 24 ); みたいに使うみたいです。 なんでDirectX使わないの? このスレの人たちは何をターゲットにしてる人なの? Direct3DはWindows以外だと使えないからなあ Windowsでしかプログラミングしないぜってなら別にいいんだが gles2.0で glPushMatrixやると落ちるんだけど なくなったの? うん、無いよ 標準の行列自体が無いから全部シェーダのuniform変数に渡して使う すみません、OpenGL(GLSL)のシェーダプログラムの質問したいのですが、ここでしても良いですか? objファイルを読み込んで使いたいのですが、 自分でライブラリ書くしかないのでしょうか・・? objローダはもう3回くらい書いたなぁ・・・ パーサ部分はまぁ再利用できるとしても、読込先が変わると、ね。 どうしてる?といいますと? 普通に、mtlファイルも読んどりますよ。 俺はめんどくせぇと思ってモデルだけ 読み込んでほったらかしてるわ・・・。 そのあたりもきっちりしとかんとなぁ。 用途によっては放ったらかしでも良いと思うけど、 マテリアルもテクスチャも適用した方がモチベーション上がるよね。 ていうかmtlの読み込みよりテクスチャ画像の読み込みの方がメンドクサイ。 AMD(AMD RADEON HD6xx0/HD5xx0) OpenGL4.1 DirectX11 NVIDIA(NVIDIA GeForce 5xx/4xx) OpenGL4.1 DirectX11 S3(S3 Chrome 5400E) OpenGL3.1 DirectX10.1 (intel HD graphics 3000/2000) Intel OpenGL3.0 DirectX10.1 Matrox(Matrox M-Series) OpenGL2.0 DirectX9c 3Dlabs(Wildcat Realizm) OpenGL2.0 DirectX9 XGI(Volari XP10) OpenGL1.5 DirectX9 androidプログラムのスレで惨敗したので、こちらでも質問させて下さい Android(OS 2.3)のjavaで直接OpenGL ES 2.0を使おうと思ってます。 しかし、javaではポインタと言う概念がないのでAPIの引数が微妙にAndroid専用になっています。 (配列の先頭アドレスが引数だと、javaのBufferObjectに変わってる等) で、普通にC++/ARM/PowerVR SGX環境で動いていたコードの一部を移植したのですが (2Dシェーダーで、頂点とカラーだけでポリゴン描画) 頂点とカラー情報のメモリをズレて使用されている感じです で、答えは自分で解決したいのですが、参考になるサイトが全然見つかりません Android Developers の公式でさえAIPの定義をただ羅列しているだけで Androidがラッパーしている部分の解説がありません 英語でも良いので、javaでOpenGL ES 2.0(NDKでJNIを使わない)を説明してるサイトを知ってる方いませんか? こっちはあまり活発じゃないのでこっちにいきな。 OpenGLスレ Part17 ttp://hibari.2ch.net/test/read.cgi/tech/1321350331/ >>700 Androidのことはよく知らないんですが、 http://developer.android.com/reference/android/opengl/GLES20.html とか見ると、BufferObjectってのはjava.nio.Bufferのことかと思いますけど、 byte[] b = new byte[n]; // bの内容を設定する。 ByteBuffer bb = ByteBuffer.wrap(b); とかしたのを渡したらダメなんですか? 私はJOGLでそんな感じでやってます。 ByteBufferで書くよりFloatBufferで書いた方が良かったか。 まあちょっとエスパーしてみると、頂点とカラーを同じ配列に入れてるなら、 Bufferのpositionを適切に設定してsliceしないとズレるかもね。 あとはマイクロソフトがWebGLをサポートしてくれればな・・・ 今までも、そしてこれからも、ブラウザシェアはIEがトップだろうし。 まあ、無理っぽいけどさ。 冒険しないからこその価値もあるんだよ IEはただのブラウザじゃなくて膨大な業務クライアントを動かす超重要なプラットフォームなんだから もうOpenGL 4まで出てるだろうにいつまで2.0スレなんだろうか。 次スレは3.0になるわけ? 2.0専用スレなんだから 3とか4とかは別途立てればいいんじゃね 需要があるかどうかは知らんがw SL#(えすえるしゃーぷ)とは、GPUで実行されるプログラマブルシェーダーを、超高級言語である C#で書けてしまうという夢のようなオープンソースのフレームワークである。 http://monobook.org/wiki/SL_Sharp 8年経ってもスレが生き延びスレタイ変更機能もつかないまま などという簡単なことすら予想できない無能 それが >>1 流石に2005年から今まで続くとは予想外だったんだろうなぁ 逆にもっと前のGL1.1なら、WindowsSDK付属のだけでやり続けるスレになってたんだろうが… Windowsに標準で入っているOpenGLのバージョンっていくつなの NHK提携シークレットサロン NHK提携シークレットサロン NHK提携シークレットサロン >大阪府三島郡島本町の小学校や中学校は、暴力イジメ学校や。 島本町の学校でいじめ・暴力・脅迫・恐喝などを受け続けて廃人になってしもうた僕が言うんやから、 まちがいないで。僕のほかにも、イジメが原因で精神病になったりひきこもりになったりした子が何人もおる。 教師も校長も、暴力やいじめがあっても見て見ぬフリ。イジメに加担する教師すらおった。 誰かがイジメを苦にして自殺しても、「本校にイジメはなかった」と言うて逃げるんやろうなあ。 島本町の学校の関係者は、僕を捜し出して口封じをするな 子供の時に受けた酷いイジメの体験は、一生癒えない深い傷になる 「暴力とイジメと口裏合わせと口封じ」の町やそういう町に巣食うヤクザ・チンピラ・ゴロツキ・不良・ いじめっ子・殺人鬼・ダニ・ノミ・シラミなどを監視して非難するのは暮らしやすい町を作るのに必要だ OpenGL ES 3.0の一部機能をES2.0だけで再現する互換レイヤーってもう作られてない? サンプラーオブジェクトとか、オーバーヘッドを気にしなければES2でも再現できそうではある。 Regalっていうライブラリがかつて開発されたいようだが、もう見捨てられていた サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ https://www.youtube.com/watch?v=NDq1QoJY0nY 宇ドナルドアナリストパワーストーンコーチングとしまえん サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足 サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題 春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残 コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題 マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了 校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント 高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート 1ループ処理で、 1枚のテクスチャ画像の部分描画を繰り返す場合、 テクスチャのbindは最初の1回だけで大丈夫ですか? OpenGL 2.0 と OpenGL ES 2.0 って同じような内容ってことでいいの? ESはモバイル用に省略されてるのは知ってる OpenGL 3.0が ES3.0と同じような内容? OpenGL ES 2.0はサブセットだったと思うがその後の進化は独自で番号は合ってない。 OpenGL 4.xのサブセットがOpenGL ES 3.yな感じ。 そもそもOpenGL ES 3.0のリリースはOpenGL4.0よりも後で4.3あたりだったからな。 >>741 そうなんだ ES3の機能は4も参考にしてるんですね サンクス わたくしいまだにOPENGL1.0を利用しております。 そこで質問があります。 OPENGE2.0にしたら何かいいことがあるのでしょうか? スピードが超高速になるとか? 違いのわかるかたいらっしゃいますでしょうか? あまり違いがないのならOPENGL1.0のままでいたいのです。 面倒くさいので。 ちなみにわたくしいかくさいでございます。 ググっても速度は出てませんでございました。 もっとも実際に組んでみて速度を試してみればいいだけの話なんですけどね。 面倒くさいので。 ちなみにわたくしいかくさいでございます。 速度じゃなくて3D表現が向上するし便利なAPI使えば同じ表現もより速く処理できる 最速でpotかどうか判別するにはどうしたらいいの? >>677 それなりの速度でヒートマップを描きたいって感じでOpenGLを触り始めたけど かなり苦戦しているので他にもっと良い方法があったんじゃないかって少し思う win32でopenGLを使って2Dゲーム作りたいんだけど0からコード打ちこまないとダメ? >>751 Win32+Ruby+SDL+OpenGLでいいならコード用意できるよ プロトタイプ開発はRuby使って本番は速度の出るC/C++、って事で良いならOK それなら、開発時には要望にすぐ応えられながら、最終的にC/C++コードを用意できるよ それでいい? Ruby にも、Gosu というゲームエンジンがあるね ただし、スマホ非対応で、デスクトップのみ 初歩的な質問ですが、fgxsdkを使ったプログラムと、openGLを使ったプログラムをつくりましたが、 どちらか片方づつだけしか使えません。ひとつのプログラムで両方使おうとするとエラーが出てしまいます。 どうしてそうなるのですか?またどうすればいいのですか? openGLでファイル入出力はどうすればいいんですか? OpenGLとファイル入出力とどういう関係があるんだよ? >>759 バッファを上書きしないように気を付ける 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 I8BV0 画面をクリアしないで表示し続ける方法ってないんですか? glClear(gl11.GL_COLOR_BUFFER_BIT|gl11.GL_DEPTH_BUFFER_BIT); レンダラのこれ取っちゃうとか試してないけど GLUIで日本語を使おうとすると痛い GLUI便利そうなのに話題に上がんないね c#とopentkをはじめたのですが、チュートがほぼないですよね 外国語でもいいのでおすすめ教えてください エディタはvs2017です ていうか OpenGL の2スレ目とかかと思ったら マジで OpenGL 2.0 のスレかよ たまげた そういや落ちたまま誰も立てなかったね。 OpenGL/Vulkanスレ Part22(c)2ch.net https://mevius.5ch.net/test/read.cgi/tech/1440666771/ OpenGLって文字表示できないのかとあきらめていたが Canvas使えば簡単に表示できたのか アホや opentkって情報ないんですが、どこ見ればいいですか(´;ω Android版3dMarkのVulkanスコア改善したってよ Windows環境ではVRAMにアクセスするには WINAPIを通さないといけないと聞いたんだが OpenGLもWINAPIを使ってるってことなんか? 乗算使うと白っぽくなっちゃうんですけど何とかなりませんか? 赤とか青にしたいんですけど >>782 カーネルをコールして、ドライバに処理をさせる、という意味では、 API呼び出しをしていると言えるけど…それは Direct X でも同じ 別にメインメモリにアクセスするのだってwin32通さないと出来ないがな OpenGL.dll とかの関数を呼ぶのは ドライバを使ってると言えるのか それとも Win32API を使ってると言うべきか ウディタみたいな2dエンジンにもopenglは使うんですか? 2Dの描画にOpenGL(or Direct3D)を直接使うのはAPIが複雑すぎるけど、それ以外にGPUを使う術がない その代わりそれらをラップしたDirect2DやDXLibとか使えば良いと思うよ rpgみたいなピクセル絵を表示するだけでもopenglのようなものが必要なんですか? プログラミング言語だけではできないんでしょうか 言語のデフォルトの機能だけではピクセル絵くらいのものということですよね >794 ピクセルが描ければポリゴンもベクタグラフィックスも描けますよ >>795 それはそうですけど、それがめんどうだからopenglがあるんですかね? >>796 OpenGLもめんどうだからいろんなライブラリがあるんですよ GLその他使わないで直接GPUいじって書いてもいいよ それが出来たらやりたいw IntelはGPUの仕様を全て公開してるから出来なくはないけど容易じゃない… C++ を使っても綺麗にならない C++ を使ってる意味が無い ねじれた四角形を使うのは良くないのでしょうか? うまくシェダーできないと どこかで見た記憶があります でもどこで見たのか思い出せません 探して下さい おながいしまつ シェーディングは出来るが、最終的には2つの三角形に分割されるが、それが2通りあって意図しない分割になる可能性があるってだけ GL_QUADS て廃止なったんじゃなかったっけ? ・・と思ってスレタイみたら OpenGL 2.0 専用スレだった・・なんてこった >>806 CW/CCW気にしない用途ならいけるが 裏で消えるのが困るとかなら無理 理由は >>807 さんの通り なるほど深いですね だとすると四角形の表示速度は三角形2つ分の速度になるのかもしれませんね 無理に四角形を多用してポリゴン数を減らしても あまり速度的には意味がないのかもしれませんね 四角を使うか三角を使うかは 作業的な部分で優先させるのが得策かもしれませんね かもしれませんね つうかモデリングする人は普通に四角ポリゴンでデータを出力する 出力時点で三角に分割されるか、何らかのツールに通して分割するかは様々 なるほど深すぎますね 対策としては四角形を使うときは どの三角形に分割されても形が変わらない四角形を使うべきですね 某ツールの隣り合う三角形を四角形にするは使わないほうがいいですね ですね GL_POLYGON と GL_TRIANGLE_STRIP どっちが効率良いですか vulkanはジャップ版の解説書、刊行予定すらないのな 日本人はOpenGLやれってことなんだろうな GL2のスレみたいだけど他にないからGL4の話していい? OpenGL/Vulkanスレが無くなったからここが後継スレでいいんじゃない? WGL→WindowsのOpenGL用API ???→WindowsのVulkan用API for文内で値が連続的に増加していく変数xの値を連続的にテキストファイルもしくはエクセルに出力したいのですが方法がわかりません どなたかアドバイスをお願いします テクスチャに文字フォント置いてxの内容をレンダしそれを キャプチャした後OCRでテキスト変換してエクセルにコピペ汁 3つほど質問させてください OpenGLで2D描画をしてますがピクセル座標を指定するには i(0 〜 例えば639) → f(-1.0 〜 +1.0) を計算してglVertex2d(fx, fy)を使うのであってますか?他に良い方法がありますか 上のやりかただと環境(Windows10, Linux on VirtualBoxの違い)や描画対象(GL_POINTS, GL_LINES, GL_POLYGONの違い)で同じ座標を指定しても 描画されるピクセル座標がずれるのですが、どうやって処理するのが定番なんでしょうか GL_POLYGONで画面に対して傾いていない四角形を描画した場合サイズが1ピクセル分小さくなったり GL_LINESで終点が描画されないのは仕様でしょうか 以上、知っていたら教えて下さい >glVertex2d 使ったこと無いので憶測になるがこれを使用禁止にして Z軸固定でいいから常に3次元指定すれば治るんじゃね ドットが欠けるのは視点の角度や距離でなってるのか描 画指示が間違ってんのかGL仕様なのか ズレてる状態じゃ検証も無理なので治ったら自分で考えて glVertex3d (z=0.0, +1.0, -1.0) で試してみましたが変化ありませんでした 一応、計算式はこんな感じです(yは左下ではなく左上を原点にするために符号を逆転しています) ●最初に試したもの、ポリゴンの配置が描画エリア中心で大きく歪む fx = ((x / (double)(SCREEN_W - 1)) * 2.0) - 1.0 fy = -1.0 * (((y / (double)(SCREEN_H - 1)) * 2.0) - 1.0) ●上記歪みはなくなるが GL_POINTS GL_LINES で位置がずれる fx = ((double)x - ((double)SCREEN_W / 2.0)) / ((double)SCREEN_W / 2.0) fy = (((double)SCREEN_H - (double)y) - ((double)SCREEN_H / 2.0)) / ((double)SCREEN_H / 2.0) ●GL_POINTS GL_LINES の代わりに GL_POLYGON で位置がずれる fx = ((double)x - ((double)SCREEN_W / 2.0)) / ((double)SCREEN_W / 2.0) + (1.0 / (double)SCREEN_W) fy = (((double)SCREEN_H - (double)y) - ((double)SCREEN_H / 2.0)) / ((double)SCREEN_H / 2.0) - (1.0 / (double)SCREEN_H) 描画は glBegin(GL_POLYGON等) → glVertex[2d/3d](fx, fy [,0.0])… → glEnd() で特に奇をてらっていません 基本的な所なので初心者にありがちなミスかやってる人には常識のバグ・仕様があるかと尋ねてみたのですが そうでもないようなのでおま環として自分で調べる事にします ありがとうございました OpenGLのピクセルセンターは(0.5, 0.5)にあって、そこが含まれてないとピクセルが打ち込まれない だから639みたいに指定しても最後のピクセルが描画されないのはそういうこと しかしDirectXは(0, 0)なんでOpenGLをDirectXに変換して実行してるようなVirtualBoxは描画されたりするんじゃないの?知らんけど 方眼紙に三角形を書いてピクセルの真ん中を通っているかを確認してどうやって描画されるから予想したものと実際の描画結果を見比べて見れば勉強になるだろう 初期設定の不備でシステム別にデフォルト値の違いがあって表示が乱れてるって事じゃないの おれスマホしかやらんからPCは判らんけど Desktop OpenGL 4.1 以降には OpenGL ES 互換モードがあるけど、実は、 OpenGL ES や WebGL の関数群は、Desktop OpenGL 1.0 には無かっただけで、 Desktop OpenGL 2.0 には全く同じものがあって、違いは、恐らく Shader 言語 GLSL に厳密な互換性があるかどうかだけらしい。 厳密な互換性がない場合でも、基本的な互換性はあるように思える。知らないけど。 >>833 OpenGL 2.0 の、glVertexAttribIPointer, glUseProgram, glLinkProgram, glCreateProgram, glBindBuffer, glBufferData などは、glext.h で宣言 されており、gl.h には入っていない。 Windows SDK 10 などには、gl.h の方しか入っていないので注意が必要。 cygwin の D:\cygwin\usr\include\w32api\GL /usr/include/w32api/GL には、gl.h, glu.h, glaux.h と共に glext.h も入っている。 >>834 結論的に言うと、OpenGL 1.2 以降は、拡張 OpenGL と呼ばれ、 Windows では、MSは原則的に公式サポートはしておらず、 nVidia, AMD(ATI), Intel などが主導して統一(ARB という組織?)された 規格なんだそうだ。なので、ドライバは各社のものを使う必要がある。 しかし、新品のパソコンやMotherBoardを買ってきたりした場合、 予めドライバがインストールされていたり、ドライバの光学メディア が付いてくると思うのでドライバは改めてインストールする必要は無いようだ。 なお、MSも、wglGetProcAddress() という API はサポートしていて、 それを使うとそれらの関数アドレスを統一して取得することは出来るようになって いるので、拡張 OpenGL を使い始めるのに各社各様の方法を使う必要はない。 なお、glew というフリーのライブラリがあり、それを使うと、 wglGetProcAddress() を使ってくれて、あたかも最初から、 拡張 OpenGL の関数群がライブラリ関数としてあったかのように 使うことが出来る。 >>831 OpenGL 1.0 では、ピクセルセンターの位置も変更できました。 拡張 OpenGL では分かりません。 >>835 補足すると、DirectXなどでも、ハードウェアに近いドライバは、 ハードウェア会社が用意していることが多い。しかし、DirectXの上位層 はMSが最初から用意している。なお、ドライバは層を成しており、 マザーボードとGPUの接続のためのドライバと、GPUのCoreUnit を制御するためのドライバは別だったりするが、その話は置いておく (もっと細かく分かれている可能性も有るが詳しくは分からない。)。 一方、OpenGLの場合は、上位層までハードウェアベンダーなどの MS以外のサードパーティーが用意しているということ。ただし、 それだけだとアプリケーションからの呼び出しが余りにも不便になるので、 MS も wglGetProcAddress() だけは用意しているということになる。 OpenGLのバージョンがどんなに上がっても 1.0は使えるということでOK? Android kotlinでopenGL やろうとしてるんだけどcontextがViewのrendrereに渡せず四苦八苦しています touch eventの情報は渡せたけど加速度センサーの値が渡せない 洋書でもいいので何か参考になる資料があれば教えてください 遅レスだが うちの設計だがレンダラの管轄的に描画関連 頂点 テクスチャ 視点のみ持たせてる タッチイベントやセンサーなんかはメインプログラムが持っていてそれらを渡すのではなく 逆にメインがレンダラの描画関連配列の参照をもらうだけにしてる 思ったよりVulkan普及しないね OpenGL系はもうオワコンかな PCじゃともかくモバイルでは今のとこOpenGL以外選択肢ないから >>843 Mobileでは、3DといえばOpenGLだし、Webの3DであるところのWebGLも、 OpenGL ESとほぼ同じもので、OpenGL ESは、OpenGL 1.2 とほぼ同じ流儀。 なので、今は、OpenGL 1.2 と同じ書き方をしていれば、全てのプラットフォームで グラフィックが描けるほど、OpenGLは、流行っている。 むしろ、Direct3Dの方が廃れていると言えるほど。 Vulkanとかボルツマンイニシアチブとか次々と矢継早に出てきたと思ったら急になにも動きが なくなったね。AMDでもCUDA互換コードが動くとか期待してたんだが。 ありゃあ何だったんだろう。 >>847 それだよな、iOS対応が滞っちゃったのが一番の敗因だわ Vulkan自体は面白いんだけどなぁ なんでこんなクソ囲い込みOSが普及しちゃうんだksg >>849 別に負けてないぞ iOSでもやりたいヤツはmetalもやれ!ってだけだろ >>849 普及した理由は、iOSだけは、ハードをAppleだけが出していて、 デバイスの形状や穴の位置が少数に限定されるため、デバイスの保護ケース(入れ物) の選択肢が増え、女子高生達が欲しがるような「かわいいケース」 が使えることが一番大きいと見ている。 逆にAndroidデバイスでは、デバイスの形状がメーカーによってまちまちなため、 合うケースが機種ごとに分かれてしまうため、自分が持っている機種に対する ケースは結果的に選択肢が少なくなってしまう。 そのため、女子高生が好むような「かわいいケース」が選べない事態となっている。 iPhoneの場合は、アリエルが背面に描かれたケースを友達が持っているとする。 それと同じものが、Androidでは似たものはあっても、デザインの品質が 悪かったりする。または、良いものが有ったとしても、たまたま自分の 持っているデバイスには形状が合わなかたりする。 店に行ったとしよう。iOS用のケースは、40種類置いてあるとする。Androidの 場合は、メーカーが10有るので、1つのメーカーでは、4つしか選択肢がない。 openGLってほんと今後どうなる? Appleだけが非推奨にしたからといって消えるものでもないだろうけど M1MacでもまだOpenGL使えるらしい もし使えなくなっても、MetalやVulkan上で動かすライブラリが有るから何も気にしないでいい ほぼ永久に使える ただ、最高性能を引き出すことは出来ないけどね 普通に考えるとそうなんだが、アップルはキチガイだから ときどき囲い込みを完成するために急にえげつない施策をやってくるから要注意 たとえばMetalを使うアプリには特別に審査が必要、としておいて審査でOpenGLの ラッパーつかってるものは全部リジェクトする、とかね それは無理だろう スタティックリンクすれば始めからMetal使ってるものとの区別がつかない 過去にMetalラッパーが非公式API使ってたからラッパー使ってるとリジェクト! ってのはあったけどまあちょっと違う話ではあるかな とはいえ実際にサード製のラッパーでしか動かせなくなったら 何も気にしなくていいって言えるほど安心はできないけどね Appleが使わないのはどうでもいいけど M1で使えないってなったら困るかもな いまさらopenGLはじめました 100個くらい同じ三角形を表示させると落ちる、、、 書き方なんだろうけど頑張ります 動かさず並べるだけなら余裕で1000個表示できた 移動させるときの変数の扱い方が悪いみたいだな… Array使って中の変数の数値変えてるだけなんだけど もう少し精進してみます その程度で落ちることは無いと思う 書き方が悪いとしたら メモリリークかな 1回だけでいい処理を繰り返し実行してるかもしれない 毎回bufferを生成してるとか >>861 あ、それやっちゃってます… 三角形描く関数の中でバッファ作ってて、表示位置変えてその関数を何度も実行させて処理してますね… 見直ししてみます ありがとです GLのBufferはサイズが不定だから最初ちょっと引っ掛かった 最大サイズが決まってる箱じゃなくて紙を好きなだけ挟めるファイル(バインダー)を イメージするといいかもしれない androidのopenGL ESやってるけど 5年くらい前の機種だとメモリなのかCPUなのかとにかく足らない android 5.0 使ってる人まだまだいるのよ メモリーリークはどこかしらコードが間違ってる可能性高いよ 例えばglDelete忘れてるとかありがち カメラの位置 gluLookAt なんだけど 視点から注視点と、視点から頭の方向の2つのベクトルは直行してなくてもいいんだよね? 868です。 自己解決しました…たぶん… 頭 ↑ 視点→注視点 間の角度が何度だろうと この2つのベクトルに直行する外積のベクトルが画面のx軸になるってことだと思う なので独立も平行もないと思います 環境によっては異なるかもしれません 間違ってたらごめんなさい read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる