X



OpenGL/Vulkanスレ Part22©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net垢版2015/08/27(木) 18:12:51.54ID:VxmGCqDu
クロスプラットフォームの3D API OpenGL 及び次世代のローレベルAPI Vulkan に関する話題を扱うスレッド。
現在の最新バージョンは4.5
https://www.opengl.org/
https://www.khronos.org/vulkan

== OpenGLと一緒に使われるツール&ライブラリ ==
苦労したくなかったらとりあえず入れとけ。
・glx:    XからOpenGLを使うためのライブラリ。普通は直接は使わず意識する事はない
・glut:   クロスプラットフォームなツールキット。でもさすがに古くさい
・GLFW   より新しいマルチプラットフォームなツールキット
・glew:   これを入れないと拡張機能が使えないor使いにくい
・glxgears: 歯車が回るベンチマーク。-infoでOpenGLのバージョンが見られる。OpenGLの動作確認はこれで
・glxinfo:  自分の使っているカードのOpenGLの機能が全てリストアップされる。
・OpenTK  C#からOpenGLを簡単に使えるようになる。VC#の強力なIntellisenseとあわせてサクサク開発可能。
・OpenSceneGraph: OpenGL を高度に抽象化し、利便性を高めたラッパー。C++ ライブラリ
・OpenGL Mathematics (GLM): GLSL 文法ライクの C++ 数学ライブラリ

== チュートリアルサイト ==
床井研究室: http://marina.sys.wakayama-u.ac.jp/~tokoi/oglarticles.html
OpenGL de プログラミング: http://wiki.livedoor.jp/mikk_ni3_92/
NeHe:    http://nehe.gamedev.net/
Tutorials for OpenGL 3.3 and later  http://www.opengl-tutorial.org/
Learning Modern 3D Graphics  Programming http://www.arcsynthesis.org/gltut/

== 前スレ ==
OpenGLスレ Part21
http://peace.2ch.net/test/read.cgi/tech/1409581958/
== 関連スレ ==
【O3D】HTML5用 3D API WebGL 【Canvas:3D】
http://peace.2ch.net/test/read.cgi/tech/1308761577/
OpenGL 2.0 専用スレ
http://peace.2ch.net/test/read.cgi/tech/1126268759/
0002デフォルトの名無しさん垢版2015/08/27(木) 18:13:59.79ID:Ifj661nZ
== 必読書 ==

-- CG入門 --
OpenGL以前の普遍的なCGの概念。
CG-ARTS協会の3冊は初心者向け。あとの2冊は上級者向け。
・コンピュータグラフィックス (CG-ARTS協会)
・ビジュアル情報処理 (CG-ARTS協会)
・ディジタル映像表現 (CG-ARTS協会)
・ゲーム制作者になるための3Dグラフィックス技術
・ビジュアルコンピューティング 3次元CGによる画像生成

-- 初心者用 --
・GLUTによるOpenGL入門
・GLUTによるOpenGL入門2 テクスチャマッピング
・OpenGL ES 2.0 プログラミングガイド

-- 上級者用 --
・OpenGL Shading Language (橙本)
・Shader Xシリーズ
・GPU Gemsシリーズ
・GPU Proシリーズ
0003デフォルトの名無しさん垢版2015/08/27(木) 18:14:34.65ID:Ifj661nZ
== 必読書2 ==

-- モダンなOpenGL --
シェーダーベースの最新のOpenGLの学習
・OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング
・OpenGL SuperBible: Comprehensive Tutorial and Reference
・OpenGL 4.0 グラフィックシステム

-- 数学 --
・ゲームプログラミングのための3Dグラフィックス数学
・実例で学ぶゲーム3D数学
・ゲーム開発のための数学・物理学入門

-- 過去の書籍 --
有名だが古いバージョンのOpenGLをもとに書かれているためすでに時代遅れ
通常は買う必要はない
・OpenGLプログラミングガイド 原著第5版 (赤本)
・OpenGL Reference Manual (青本)

== チュートリアルサイト2 ==
OpenGL Step By Step:    http://ogldev.atspace.co.uk/
OpenGL Samples Pack:    http://ogl-samples.g-truc.net/
0005デフォルトの名無しさん垢版2015/08/28(金) 00:40:51.72ID:J/FclS9C
今、点と線を描くプログラム↓を書いています

glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 1.0, 1.0);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_DOUBLE, 0, point_data);
glDrawArrays(GL_POINTS, 0, point_num);
glutSwapBuffers();


そこでline_data[]内にある頂点データを使っていくつかの直線を描く関数を上のプログラムに追加したいのですが、どうすればいいでしょうか?
0009デフォルトの名無しさん垢版2015/08/28(金) 15:20:19.68ID:J/FclS9C
>>8
はい、点の方はちゃんと動いています!
ここに線を加えようとしても上手くいかず困っています
0011デフォルトの名無しさん垢版2015/08/28(金) 20:15:55.51ID:J/FclS9C
>>10
はい、繋がっていない線をいくつか描きたいのでLINESの方を使いたいです

glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 1.0, 1.0);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_DOUBLE, 0, point_data);
glDrawArrays(GL_POINTS, 0, point_num);

glVertexPointer(2, GL_DOUBLE, 0, line_data);
glDrawArrays(GL_LINES, 0, line_num);

glutSwapBuffers();

↑のように付け加えてみましたが、この書き方はだめなようです
直線を描くにはどういう書き方をすればいいのでしょう?
0013デフォルトの名無しさん垢版2015/08/28(金) 20:40:54.15ID:J/FclS9C
あ、原因が分かりました
>>12も含めて見直していると型がdoubleでなくshortになっていることに気が付きました
ありがとうございました
(昨日あれだけ見直しても気付かなかったなんて・・・)
0014デフォルトの名無しさん垢版2015/09/03(木) 01:28:36.62ID:NZelf7lm
シェーダ初心者です
フラグメントシェーダで出力するベクトルはwが変わるとxyzにも影響が出るものでしょうか?

gl_FragData[2] = vec4( pos.xyz, w );

上のようにFBOを利用してテクスチャに座標情報を渡してみようと思い
フラグメントの出力に頂点シェーダから受け取ったポジションを渡して
余ったwに適当なデータを含めて試していたのですが
続く描画パスで出力結果のテクスチャを参照してwに触れずxyzのみ参照する場合でも
前の描画パスでwに設定した値が変わると最終的な描画結果が変わってしまうようで
シェーダの仕様かプログラムのバグかも分からず参ってます。
001614垢版2015/09/04(金) 01:06:59.54ID:WA4Vuouz
>>15
ご指摘の通りでglDisableでブレンド切ってみたら期待した結果が得られました
複数テクスチャ使う場合のブレンドの設定とかまた調べてみます ありがとうございました
0017デフォルトの名無しさん垢版2015/09/07(月) 23:59:15.25ID:zlL3a7qU
FBO使う場合にRBOかテクスチャか関連付けて使いますよね?
後から効果付けるの便利なのでテクスチャばかり使ってて
RBOってどういう時に使えばいいのか分からないのですが 上手い使い分け方とかあります?
0018デフォルトの名無しさん垢版2015/09/11(金) 11:35:53.77ID:fr07wZLl
>>17
https://www.opengl.org/wiki/Renderbuffer_Object

今後描画結果をOpenGLで使うつもりがあるならテクスチャ
そうでなければレンダーバッファ

カラーにはテクスチャを使うが
デプスにはレンダーバッファを使う事なら普通にある

テクスチャはレンダーターゲットとして使うのには最適じゃない事があるかもしれないが
レンダーバッファはレンダーターゲットとして使うのに最適なものになっているという
0020デフォルトの名無しさん垢版2015/09/12(土) 15:22:12.26ID:HMzU4nPJ
Chrome 45.0.2454.85のANGLEを使うと
Intel HD Graphicsでだけテクスチャが変になるな
昔懐かしのR5G6B5の16bitカラーテクスチャみたいな色になる
44.0.2403.157だと普通
0021デフォルトの名無しさん垢版2015/09/14(月) 19:52:48.19ID:nW8KHDe7
スレタイにVulkanが入っているので質問したいのですが、
これから3Dグラフィックを独学で勉強し始める場合、
OpenGLをやった方がいいのでしょうか?それとも、
いきなりVulkanをやっても大丈夫でしょうか

別の言い方をすると、Vulkanというのは、OpenGLを使えることを
前提としているのでしょうか?それとも、新しいAPI体系なのでしょうか?

3Dグラフィックスの知識はありません。
学部レベルの数学は大丈夫です
0022デフォルトの名無しさん垢版2015/09/14(月) 20:00:27.33ID:ni7Sx5as
Vulkanはまだ資料もすくないから必要がなければとっつくこともないかと
そもそお3Dの知識なしには多分キツイはず
OpenGLは覚えること多いけど、資料も多いから勉強するならこっち
0025デフォルトの名無しさん垢版2015/09/15(火) 23:37:01.54ID:iBP99bbY
Vulkan対応ドライバやOSがまだそもそも出てなくね?
0029デフォルトの名無しさん垢版2015/09/20(日) 10:17:29.98ID:ppyDSJna
その分ハードウェアの癖が出やすくなったりしないのかね
ま、どうせチューニングせざるを得ないなら薄いほうが良いな
0030デフォルトの名無しさん垢版2015/09/20(日) 11:37:36.41ID:W0H8rt0f
OpenGL ESのドライバ実装の違いによる不具合ってどう言うのがあるんだろう
WindowsデスクトップではANGLEに違いを吸収してもらうとして
問題はスマホなんだが

この2つは知ってる

・iOSで勝手にミップマップ用のメモリを確保するバグがあったらしい
・NVIDIAだと他社ドライバではコンパイル出来ないGLSLのプログラムがコンパイル通る

iOS Textures Taking 33% Extra Memory - Stack Overflow
http://stackoverflow.com/questions/9438009/ios-textures-taking-33-extra-memory

>>29
OpenGLみたいにぶ厚い方が
ドライバ依存の部分が多くなって予測不可能な動作をしやすい気がするが
0031デフォルトの名無しさん垢版2015/09/20(日) 12:34:08.41ID:9sOZdp6w
異なるハードウェアの差異はOpenGLのレイヤーで吸収
それ以上に低層で扱いたい場合はVulkan
0032デフォルトの名無しさん垢版2015/09/20(日) 14:57:05.05ID:LJD7mjJ9
>>30
自分が当たったのは

Adreno 205でdiscardの後にtexture使うとOSごとクラッシュ

Adreno320でUBOの変数をそのまま計算に使用するとshaderコンパイル時にアプリクラッシュ(なぜか一時変数に代入してから使用するとクラッシュしない)

Adrenoはエラーログ出さずにすぐ死ぬからマジでデバッグが地獄
しかも今Androidで一番使われてるシリーズ

ほかはここに色々
ttp://cpplover.blogspot.jp/2013/09/dolphinopengl.html?m=1

薄かろうがAdrenoがまともなドライバを作れるとは思えない
0033デフォルトの名無しさん垢版2015/09/21(月) 00:42:42.41ID:Kj2opw9V
>>32
その駄目AMDがいまやPC系のOpenGLでは最も安定動作し性能が良いんだからな
おかげでOpenCLのスタンダードになり、そして、Vulkanを後続規格に出来たんだからな
0035デフォルトの名無しさん垢版2015/09/21(月) 06:53:50.45ID:14VyAGI9
>>34
性能はいいけど・・・って感じだよね、
nVIdiaとVulkanはMantle的に相性は悪いがそれでも今のスマホGPUよりかはよっぽどましな挙動をすると思う
0036デフォルトの名無しさん垢版2015/09/21(月) 19:09:44.31ID:0lL32CsL
しかもモバイルのドライバ更新されないからな
Nexus5使ってるけどOSの更新はされてるけどドライバのバグずっとそのまま
まぁ、AndroidはOSの更新すらされないデバイスだらけだから一部の端末だけ更新されて新たなバグ埋め込まれても困るけど
0037デフォルトの名無しさん垢版2015/09/22(火) 15:49:19.14ID:FtZHMHGY
Vulkanはドライバーがシェーダーをコンパイルする必要がないから
それだけでも安定性は増すはず
それとkhronos自体がデバッグしやすくする為のツールを作ったりしてるから期待できる
当然GPUの状態を取得する為のAPIも追加されてるはず
あとドライバがアプリが想定しているバージョンより古いと自動的にダウンロードして
更新するみたいな事をするとチラッと見た
0039デフォルトの名無しさん垢版2015/09/24(木) 01:10:48.32ID:r/3RmciX
ドキュメント読むとハードルめちゃ高いなー
早くVulkanのプログラムしたいけどGPUも買い換えないといけないのかなぁ…
NVIDIAだけど既存のGPUもサポートしてくれる事を祈る
0040デフォルトの名無しさん垢版2015/09/24(木) 02:47:19.21ID:F12mSHo9
>>39
自前で組む分にはハードルが高いが
実際は有志から出された物やドライバのレイヤーを使って組むことが多いと思う
0041デフォルトの名無しさん垢版2015/09/24(木) 02:52:10.66ID:F12mSHo9
http://peace.2ch.net/test/read.cgi/tech/1440666771/38
38 名前:デフォルトの名無しさん[sage] 投稿日:2015/09/24(木) 00:46:56.91 ID:r/3RmciX [1/2]
https://www.khronos.org/assets/uploads/developers/library/2015-cedec/Vulkan-CEDEC2015-DMP_Aug15.pdf
VulkanのOverviewが日本語に翻訳されてた
しかもVulkanAPIの解説付きだからこれでVulkanの全貌が把握出来る

なんとなくVulkanもMaxwell2と相性悪そうな気がする
0043デフォルトの名無しさん垢版2015/09/27(日) 17:17:31.03ID:UvPGCZi1
テクスチャフォーマットについて
2Dで表示するものは各8bitのRGBA(アルファ不要ならRGB)
3Dや多少の見た目の劣化が許容できるものはDXT1,3,5
こんな感じの使い分けがベターだと思ってるんだけど
詳しく解説されてるの見たことがないのでより良い選択肢があれば教えて欲しい
004443垢版2015/09/27(日) 17:20:16.60ID:UvPGCZi1
補足
動作環境はwindowsのデスクトップPCを想定してます
004643垢版2015/09/29(火) 00:37:27.42ID:VYlPl96E
>>45
遅レスだけど返答ありがとう
劣化が気になることもあるけどDXT主体で使い分けてみるよ
0048デフォルトの名無しさん垢版2015/10/16(金) 10:32:49.32ID:l04muiBk
MMDはアプリだから表示なんかできないと思うんだが…
openglで表示してみた、というのは自分で何かopenglのプログラムを作ったという事かな?
だとすると表示が落胆ものなのは、完全に>>47 自信のスキルがアレなせいだと思う
0050デフォルトの名無しさん垢版2015/10/17(土) 09:57:29.33ID:o8rjpUAD
なぜかあにまさ式だとうまくできました、
ブログはHTMLが面倒なのでげ製作でやっときます
0051デフォルトの名無しさん垢版2015/10/23(金) 09:31:24.55ID:I0uni5nx
☆ 日本の核武装は早急に必須ですわ。☆
総務省の『憲法改正国民投票法』、でググってみてください。
日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である
改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願い致します。
0052デフォルトの名無しさん垢版2015/10/23(金) 14:20:58.65ID:M7dNli7I
Lat式は表示方法自体がMMDデフォの描画プロセスを完全再現しないと
とんでもない事になる特殊なモデリングだから仕方なし
0053デフォルトの名無しさん垢版2015/10/25(日) 13:13:26.63ID:vAKl7Lz8
2D描画をステート変更無しで高速に行えて
少し古い環境でも動くのってTexture Atlasだけ?

ES3の2D Array Textureって同じサイズのテクスチャじゃないと駄目みたいだし
代わりになりそうなのはBindless Textureだけど普及してないし
当分Texture Atlasを使うしかなさそう
0056デフォルトの名無しさん垢版2015/10/26(月) 19:03:55.27ID:NExmEVH8
マップチップ的なものならES3.0が使えるならArray Textureでいけるし
無くても1/4までなら画質は大丈夫
それ以外は諦める
0057デフォルトの名無しさん垢版2015/10/26(月) 23:26:16.82ID:h8FGDwiK
同じシーンを描画し続けてて急に負荷が高くなる場合ってどんなところ疑うべき?
起動して10秒くらいまでは軽いんだけど、突然重くなってその状態を維持し続けるっていう…
ごちゃごちゃになってるプログラム整理しながら間違い探してるんだけどWGLとかシェーダとか色々初体験でどこが悪いやら…
0058デフォルトの名無しさん垢版2015/10/26(月) 23:38:52.89ID:2nnyXhaR
多分、色々と食い潰してる。
どうでもいいが「重い」とか言っときながら、まさかプロセスやリソースの状態も
調べてないとか言い出すなよ?
0061デフォルトの名無しさん垢版2015/10/27(火) 00:20:29.74ID:MDUv4Uu+
>>58
デバッグ用の拡張命令とかも調べつつなんでお察しください…
>>59
JavaScriptとかよく分からないんだけど…C++コード弄るの飽きたら試してみるわ
>>60
不安になってググってみたらWinGLもなんか違うな…wglCreateContext関数とか使うやつだわ
0062デフォルトの名無しさん垢版2015/10/27(火) 00:46:01.74ID:XDD7LrKE
最近のVisual Studioは無料版でもプロファイラが付いているからまずそれを使う
後はOpenGLデバッガのgDEBuggerを使うとか

>>61
それがWGLでしょう。
006457垢版2015/10/27(火) 02:09:35.31ID:MDUv4Uu+
>>62
VSのプロファイラは使ってるけどgDEBuggerってのは使ってなかったので試してみるよ ありがとう
0065デフォルトの名無しさん垢版2015/10/27(火) 11:55:48.66ID:to74HYda
WindowsでOpenGLするならNVIDIAだよな?
AMDは使ってないから分からんが多分大丈夫だろうけど
IntelのWindows用OpenGLドライバは腐ってる
0068デフォルトの名無しさん垢版2015/10/28(水) 21:53:41.91ID:gVmYV2et
>>65
昔はNvidiaだったが、いまやOpenGL・OpenCLのデファクトVGAはATI
Win/Linuxで安定度・性能がNvidiaよりずっと上
0071デフォルトの名無しさん垢版2015/10/29(木) 20:54:28.65ID:M5LgoQD5
AMDのMantleが元になってるからな。
これでAMDが負けたら日本人が日本語クイズでアメリカ人に負けるようなもの
0072デフォルトの名無しさん垢版2015/10/30(金) 09:47:52.19ID:KICymkbE
Vulkanは超シンプルなAPIだからハード性能がダイレクトに効いてくる
当然AMDのハードが良かったらVulkanで勝てるだろうが別に有利不利とかはない
0073デフォルトの名無しさん垢版2015/10/30(金) 19:15:23.10ID:kIMI498u
文字列をテクスチャに描画するのにFBOを使っていたんだが
PCだと爆速なのにAndroid機 (Snapdragon 801)だと10〜20個ぐらいでもう60fps出せないぐらい遅かった

CPUで画像をコピーするのを避けていたんだが、FBOの切り替えやその他のレンダリングステートの変更、ドローコールが思ったより高価だったようだ

テクスチャを通さず画面に直接描けばそんな遅くないかもしれないが
設計的にそうも行かない事情があった

これはCPU側で全てテクスチャに使う画像を作って送るしかないんだろうか
0074デフォルトの名無しさん垢版2015/10/30(金) 23:18:37.32ID:RKkoxr6k
PowerVR系のTBDRが文字描画と相性が悪いというのは有名だけど
Snapdragon(Adreno)だと何だろうね

そのうちフォントのラスタライズもGPUで行う時代になるのかね
ラスタライザの実装自体は難しくないとしても
結局フォントデータが日本語だと1書体で数MB〜数十MBだからなぁ
0076デフォルトの名無しさん垢版2015/10/31(土) 12:10:59.00ID:8Bda5lAI
言いたいことは分かるがAndroidとPCて比較できる関係にないだろ
それにデスクトップPCの時代は過ぎたし
0077デフォルトの名無しさん垢版2015/10/31(土) 12:39:03.93ID:InQpe4ua
OpenGL ESはデスクトップで動くんだから完全に比較できるでしょ
あとデスクトップPCの時代が過ぎたって意味が分からん
Steamの同時接続ユーザー数がピーク時に1150万人以上を記録とか言ってるし
むしろ増え続けてる
0078デフォルトの名無しさん垢版2015/10/31(土) 12:43:38.96ID:uu+i9WLB
日本ではPCは終わってるかもね。
いや、始まってすらいないか。
PC使えない老害と新卒新入社員が問題になる国だもんな。
0079デフォルトの名無しさん垢版2015/10/31(土) 14:54:45.53ID:InQpe4ua
問題って…どんだけネットに洗脳されてんだ…
仕事がPCが出来る出来ないだけで方が付くんであれば楽なもんだな
0080デフォルトの名無しさん垢版2015/10/31(土) 18:10:18.47ID:2qMna6cK
こんな事書いてあるけどOpenGLのコマンドがすぐに戻って来ないって事は良くあんの?glReadPixelsみたいな結果を得る必要があるコマンドでなくても?

Chromeだと複数のプロセスからのOpenGLコマンドを一つのプロセスでまとめて実行してるようだ

http://www.chromium.org/developers/design-documents/gpu-command-buffer

The #3 goal is speed. Speed is why a command buffer implementation was chosen.
The client can write commands very quickly with little or no communication with the service and only once in a while tell the service it has written more commands.
For example, another implementation could have used a separate IPC for each OpenGL ES 2.0 function but that would arguably be too slow.
The command buffer gets another speed boost because it effectively parallelizes calls into the OS graphics API.
A call like glUniform or glDrawArrays might be a very expensive call but because of the command buffer the client just writes a few bytes into the command buffer and is done.
The GPU process calls the real OpenGL function on another process which effectively makes the program multi-core.
0081デフォルトの名無しさん垢版2015/10/31(土) 19:11:13.20ID:ylRFVIHZ
コマンドが戻って来る来ないってのがよく分からないけど
処理が遅くなるって事なら前のコマンドが解決されてなかったりすれば後のコマンドもその分待たされるんじゃないの?
0082デフォルトの名無しさん垢版2015/10/31(土) 19:40:24.93ID:8Bda5lAI
>>77
そうじゃなく泥タブだってPCといえばPCだしPCの定義って何って話
MacはPCじゃないらしいけどな

Steamのユーザ数とデスクトップPCのシェアは別だよね
それにIntelHDユーザがどれだけいることか
0083デフォルトの名無しさん垢版2015/11/01(日) 02:26:33.11ID:Pwz2JCQ5
スマホから見ればPCはすべてを導いてくれる神様なんだからPC使えないんだったら黙って崇めとけ
0084デフォルトの名無しさん垢版2015/11/03(火) 14:21:40.06ID:V53UaXPp
>>80
戻ってこないなんて書いてあるか?
ChromeとかブラウザのWindows版は全部WebGL(OpenGL)→DirectXに変換して実行してるから
その為に一旦自前のコマンドバッファに溜め込んでるよって事でしょ

その自前のコマンドバッファはマルチコア対応だから軽いよって書いてある
実際ANGLE使わずにOpenGLを直に使うようにするとCPU負荷が少し増える
0085デフォルトの名無しさん垢版2015/11/03(火) 23:10:42.25ID:ltuo8JAD
別にANGLE限定とは書いてない
互換性やセキュリティの問題はWindows以外でも存在するし

複数のスレッドから直接OpenGLのAPIを呼ぶより
アプリ側でAPIコールを纏めて一つのスレッドから呼んだ方が速いとされているのだが
実際にどの程度速度が変わるのかは分からない
ドライバ実装によっても変わるかもしれない
0086デフォルトの名無しさん垢版2015/11/04(水) 11:22:45.65ID:4VARUgDB
よく見たらWebGLの話しではなかったな…
HTMLレンダラーとかGPU使って描画する時の話しだったな

そもそもOpenGLはマルチスレッドに対応してないから複数スレッドからAPIをコール出来ない
複数スレッドからDrawコールをしたい場合は自前のコマンドバッファが必須だな
0087デフォルトの名無しさん垢版2015/11/04(水) 13:18:18.56ID:3HqGJBgB
>>86
別にWebGLでは使ってないとは書いてないけど

プロセス毎にOpenGLコンテキストを作ればマルチスレッドでも使えるだろうが
それだと遅かったのだろう
0088デフォルトの名無しさん垢版2015/11/08(日) 18:44:22.99ID:POF/ID6D
質問させてください。

100 millions個以上の三角形ポリゴンを60fpsで描画したいのですが
一番いいソフトウェア上の組み合わせって何でしょうか。

Windows10(64bit),,GTX750TI,i5,
VS2010で64bitビルド,freeglut2.8
描画にPBO用いてglDrawElements利用

で試したのですが,25 millions個の三角形メッシュで<1FPS程度です。
どうもfreeglutはGDI用いていてそれがボトルネックになっている気がしています。
レス読む限りWGLで書いていくのがよさそうな気がしましたがお知恵下さい。
0090デフォルトの名無しさん垢版2015/11/08(日) 20:18:26.44ID:WIQI5dDH
まともなエンジニアなら
ソフトウェアの組み合わせの前に
100 millions個以上の三角形ポリゴンを
60fpsで描画しないで済む方法を検討すると思うが

要件をはっきりさせるべき
0091デフォルトの名無しさん垢版2015/11/08(日) 22:02:27.62ID:1RMtYxbs
>100 millions個以上の三角形ポリゴンを
>60fpsで描画しないで済む方法を検討すると思うが

要件は100 millions個以上の三角形ポリゴンを 60fps以上でです
これを回避出来ないか答えられません。済みませんが
0092デフォルトの名無しさん垢版2015/11/08(日) 22:41:34.77ID:m4MzXsh9
どんな解像度でレンダリングしようとしてんのかしらんけど8Kディスプレイでもピクセル数3300万だぞ
1億ポリゴンのうちどれだけ描画されるのか考えた?
その要件が絶対というならそのバカな要件を精々頑張ってくれ
0094デフォルトの名無しさん垢版2015/11/09(月) 00:18:42.73ID:qCcvicZl
クラスター化したりGPU積むなりして分散レンダリング、通信して集めて重畳するくらいかね
0095デフォルトの名無しさん垢版2015/11/09(月) 03:37:54.95ID:e9NKrZa6
すみません、普段MAX/MSP以外のプログラミングには全然疎くて
それでMAXでOpenGLを使うときの質問なのですが

nurbs曲線を引きたいんです。

そこでjit.gl.nurbsオブジェクトで、曲面でなく曲線を描きたいのですが、
制御点(のx,y,z座標)を予め設定するには、どうしたらいいですか?

ググっても殆ど出てこないし、ネット上のチュートリアルには
jit.gl.nurbsの使い方なんて載ってません。

ヘルプを見ても、どうも最初に設定している様子もないので、困っています。
どなたか助けてください・・・
0097デフォルトの名無しさん垢版2015/11/09(月) 17:34:15.03ID:SvTFDp+i
Maliでは各FBOのバインドは1フレーム1回までにしろって書いてあるけど
glClear()して同じのを使いまわしたのではパフォーマンス低下する?

https://community.arm.com/groups/arm-mali-graphics/blog/2014/04/28/mali-graphics-performance-2-how-to-correctly-handle-framebuffers

Binding each FBO (other than FBO 0) exactly once in each frame, rendering it to completion in a contiguous sequence of API calls.
0098デフォルトの名無しさん垢版2015/11/09(月) 18:48:25.44ID:+KYSwNrX
>>97
想像だけど1回までにしろといってるのはFBOをアンバインドする時に
そのFBOに対する描画が全部完了するまでブロックが発生したりするからだと思われる
だからglCleare()で使い回すのはパフォーマンスは低下しないでしょ
ただ別にFBO作った方が速いだろうね (レンダリングが並列に実行されるだろうから)
0099デフォルトの名無しさん垢版2015/11/09(月) 23:02:58.43ID:2GPWptLo
>クラスター化したりGPU積むなりして分散レンダリング、通信して集めて重畳するくらいかね
これいいですね アイデア頂きです
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況