クロスプラットフォームの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/
探検
OpenGL/Vulkanスレ Part22©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2015/08/27(木) 18:12:51.54ID:VxmGCqDu
492デフォルトの名無しさん
2016/11/03(木) 21:14:58.89ID:x7ofF0dY >>491
thx。やり方がわかりました
thx。やり方がわかりました
493デフォルトの名無しさん
2016/11/04(金) 01:29:43.97ID:FKFPUeAb494デフォルトの名無しさん
2016/11/04(金) 03:35:43.26ID:e0uuer+h 縦横の慣習が違うのは
民族性とか文化の違いから来てるんですか
民族性とか文化の違いから来てるんですか
495デフォルトの名無しさん
2016/11/04(金) 11:13:20.80ID:fEiF0USd >>467
お前らが叩くから記事消えちゃったじゃん
お前らが叩くから記事消えちゃったじゃん
496デフォルトの名無しさん
2016/11/04(金) 14:57:33.75ID:57dKQ7qw > 描画したくないものまで描画されるじゃないですか
?
頂点数指定するだろ。
ていうか配列でというのは連続したメモリ領域をという意味だから、常にプログラミング言語仕様で言うところの配列の先頭からでなくともよい。
でかい固定配列をリングバッファとして使っても良い。
> 配列を渡して一斉に描画するほうが高速だと聞きました
これを言った人が何を意味していたのか分からないが、
・4頂点ずつ描画キックするよりはまとめてキックした方が良い
・glVertex や glColor の類を使うよりはglVertexPointerを使う方が良い
・VBO を使うとより良い
と言える。
素人は何を聞いているのか分からないことが良くある。もっと謙虚になるといい。
?
頂点数指定するだろ。
ていうか配列でというのは連続したメモリ領域をという意味だから、常にプログラミング言語仕様で言うところの配列の先頭からでなくともよい。
でかい固定配列をリングバッファとして使っても良い。
> 配列を渡して一斉に描画するほうが高速だと聞きました
これを言った人が何を意味していたのか分からないが、
・4頂点ずつ描画キックするよりはまとめてキックした方が良い
・glVertex や glColor の類を使うよりはglVertexPointerを使う方が良い
・VBO を使うとより良い
と言える。
素人は何を聞いているのか分からないことが良くある。もっと謙虚になるといい。
497デフォルトの名無しさん
2016/11/04(金) 14:58:53.65ID:57dKQ7qw ごめん、リロードしてなかった。
498デフォルトの名無しさん
2016/11/05(土) 01:13:00.41ID:gzAsh3gw499デフォルトの名無しさん
2016/11/15(火) 10:16:57.35ID:YjLtsY+t Vulkanってローレベル過ぎて使いづらそう
なんかこう
OpenGLとVulkanの中間みたいのが欲しい
なんかこう
OpenGLとVulkanの中間みたいのが欲しい
500デフォルトの名無しさん
2016/11/16(水) 01:11:12.85ID:xjZDvINt もうこれ以上api増やさないで
501デフォルトの名無しさん
2016/11/16(水) 07:35:03.91ID:LWdqoO+l 赤本出たけど勉強してるの?
502デフォルトの名無しさん
2016/11/16(水) 11:01:21.29ID:C38vw7lZ そもそも流行りそうに無いんだよなぁ……
503デフォルトの名無しさん
2016/11/16(水) 11:08:50.83ID:ruJwqX7K そうかなぁ
504デフォルトの名無しさん
2016/11/16(水) 12:24:37.35ID:I0d/eIi3 最近になってOpenGLを触ったんだけど凄く使い辛いと思った
元がとても昔に作られたものだからこんなものかとも考えたが
これかDirectXを最下層として多くのゲーム等が作られているのかと正直驚いた
元がとても昔に作られたものだからこんなものかとも考えたが
これかDirectXを最下層として多くのゲーム等が作られているのかと正直驚いた
505デフォルトの名無しさん
2016/11/16(水) 12:28:03.81ID:rT2aNE5L 掲示板と日記帳の使い分けもできないリテラシーのひくそうな人には
いろいろと不便でしょうね(´・ω・`)
いろいろと不便でしょうね(´・ω・`)
506デフォルトの名無しさん
2016/11/16(水) 12:38:57.94ID:VglaLP8t オブジェクト指向マンセーで
ステートマシンを知らないひとには使えない
ステートマシンを知らないひとには使えない
507デフォルトの名無しさん
2016/11/16(水) 14:50:04.43ID:BjAGLSjY そのせいでマルチスレッドに対応しづらいのもまた事実
508デフォルトの名無しさん
2016/11/16(水) 15:25:39.98ID:I0d/eIi3 なんでステートマシンになってるのかなと思った
ハードウェアチップをI/O経由でたたくイメージなのかなこれ?
描画ソフトウェアライブラリーというよりSGIのGPUを制御するためのツールとしてデザインしたらこうなったのかな
ハードウェアチップをI/O経由でたたくイメージなのかなこれ?
描画ソフトウェアライブラリーというよりSGIのGPUを制御するためのツールとしてデザインしたらこうなったのかな
509デフォルトの名無しさん
2016/11/16(水) 15:28:44.99ID:Nj+EczKt >>508
FILE*のイメージだろうね
FILE*のイメージだろうね
510デフォルトの名無しさん
2016/11/16(水) 16:23:15.15ID:/LUNHxha511デフォルトの名無しさん
2016/11/16(水) 19:42:15.33ID:kIxXFuD3 何bindしたかで関数の動作や引数の意味が変わってしまうのには嵌るわ。
バッファ関連そんなんばっかし。
バッファ関連そんなんばっかし。
512デフォルトの名無しさん
2016/11/16(水) 23:34:36.54ID:fzskfnoe そりゃそうだ
Cで構造体をVOID*にするようなもん
Cで構造体をVOID*にするようなもん
513デフォルトの名無しさん
2016/11/17(木) 01:30:46.96ID:PMO9oOjD >>508
今のようなメモリ上に分散したデータをまとめてDMAでゴソッとGPUに渡すようなハードじゃなくて
ハードウェア上に1つだけステートがあって、それこそI/OポートとかメモリマップドIOとかで
GPUのレジスタを一つずつ設定してdrawするんであれば、初期のOpenGLの実装は理にかなってると言えるかも
想像で言ってるだけだが
今のようなメモリ上に分散したデータをまとめてDMAでゴソッとGPUに渡すようなハードじゃなくて
ハードウェア上に1つだけステートがあって、それこそI/OポートとかメモリマップドIOとかで
GPUのレジスタを一つずつ設定してdrawするんであれば、初期のOpenGLの実装は理にかなってると言えるかも
想像で言ってるだけだが
514デフォルトの名無しさん
2016/11/17(木) 08:15:27.88ID:4vvrWja6515デフォルトの名無しさん
2016/11/17(木) 09:19:40.51ID:bvn/QdTk オートマトンじゃないものをステートマシンと呼ぶ分野があるのか。
516デフォルトの名無しさん
2016/11/17(木) 16:15:12.11ID:rgT4eIRU bind , unbindのタイミングの定義がなんかもやもやしてるよね
517デフォルトの名無しさん
2016/11/18(金) 16:07:46.20ID:vbdBJsNN free不要論者ですし
518デフォルトの名無しさん
2016/11/18(金) 23:33:13.88ID:SgtZza8z githubに中国語でコード書いている中国人もいるし
多少はね?
多少はね?
519デフォルトの名無しさん
2016/11/19(土) 21:45:54.84ID:48uE9qYW Vulkanで実装されたOpenGLみたいのを使えば
苦労しなくても既存のアプリが少しは早くなるかもって思ったけどそれは無いか
Vulkanの大きなメリットの一つはレンダリングステートやコマンドバッファを再利用できる事みたいだが
ゲームエンジン側は毎回OpenGLのAPIを呼ぶような構造になってて
再利用する前提になってないから無意味そう
OpenGLの仕様に合わせようとするとエラーチェックも必須でさらにオーバーヘッドが
苦労しなくても既存のアプリが少しは早くなるかもって思ったけどそれは無いか
Vulkanの大きなメリットの一つはレンダリングステートやコマンドバッファを再利用できる事みたいだが
ゲームエンジン側は毎回OpenGLのAPIを呼ぶような構造になってて
再利用する前提になってないから無意味そう
OpenGLの仕様に合わせようとするとエラーチェックも必須でさらにオーバーヘッドが
520デフォルトの名無しさん
2016/11/19(土) 22:29:30.25ID:a2H+q4ub 赤本も出た事だし猿でも分かるVulakanブログを始めようかと思ってるけどね
理解さえすれば偏見もなくなるはずだ
理解さえすれば偏見もなくなるはずだ
521デフォルトの名無しさん
2016/11/19(土) 22:36:41.20ID:0cH3YNKy522デフォルトの名無しさん
2016/11/20(日) 09:20:34.73ID:D6VOlvSW Vulkanは今までドライバが勝手にやってくれてたメモリ確保や
コマンドバッファに入れたコマンドの送信も手動っぽいのも面倒くさい
OpenGLとNV_command_listのVulkan版みたいの欲しいな
あれVulkanで出来る事に近いんでしょ?
ANGLEのVulkanバックエンドのコードは見てみたが
まだ何も実装されていなかった
コマンドバッファに入れたコマンドの送信も手動っぽいのも面倒くさい
OpenGLとNV_command_listのVulkan版みたいの欲しいな
あれVulkanで出来る事に近いんでしょ?
ANGLEのVulkanバックエンドのコードは見てみたが
まだ何も実装されていなかった
523デフォルトの名無しさん
2016/11/20(日) 09:32:39.51ID:0ByPx+DX >>519
エラーチェックとかステートの一貫性チェックとかは開発時だけに必要なんだよ
リリースビルド時はバッサリ削除するのが普通
リリース版実行時にOpenGLエラーが発生したらそれは単にバグを残したままリリースしちゃったってことだ
エラーチェックとかステートの一貫性チェックとかは開発時だけに必要なんだよ
リリースビルド時はバッサリ削除するのが普通
リリース版実行時にOpenGLエラーが発生したらそれは単にバグを残したままリリースしちゃったってことだ
524デフォルトの名無しさん
2016/11/20(日) 09:50:10.91ID:D6VOlvSW >>523
それアプリ側でglGetError使うかどうかって話じゃないの?
もしかしたらglGetErrorが使われるかもしれないし
エラー発生時もGPUによって違う結果になったりしないように
OpenGLドライバは常にエラーチェックをしてる
そのせいでオーバーヘッドが大きいとか聞く
これ無視してエラーチェックの無いOpenGL実装を作ったら
それはもはや規格外OpenGLだと思う
それアプリ側でglGetError使うかどうかって話じゃないの?
もしかしたらglGetErrorが使われるかもしれないし
エラー発生時もGPUによって違う結果になったりしないように
OpenGLドライバは常にエラーチェックをしてる
そのせいでオーバーヘッドが大きいとか聞く
これ無視してエラーチェックの無いOpenGL実装を作ったら
それはもはや規格外OpenGLだと思う
525デフォルトの名無しさん
2016/11/20(日) 12:30:46.79ID:AFs4tbnF 将来的にGPUメーカーの提供するドライバーがVulkanのみになってOpenGLを切り捨てるとかにならない限り
Vulkanで実装したOpenGL APIとか作っても無意味そうだよね
Vulkanで実装したOpenGL APIとか作っても無意味そうだよね
526デフォルトの名無しさん
2016/11/20(日) 16:08:30.99ID:bRgpXaT+ >>525
GPUメーカーがそれを使えばドライバーがまともになる
GPUメーカーがそれを使えばドライバーがまともになる
527デフォルトの名無しさん
2016/11/20(日) 17:38:21.63ID:AFs4tbnF それはVulkanドライバーがまともならって前提だな
528デフォルトの名無しさん
2016/11/20(日) 18:26:40.97ID:eKhjuJLo プロレス技っぽいな
529デフォルトの名無しさん
2016/11/21(月) 09:44:08.00ID:o+vJVwIh530デフォルトの名無しさん
2016/11/21(月) 10:59:28.58ID:1Z4OsYDH531デフォルトの名無しさん
2016/11/21(月) 11:04:31.25ID:1Z4OsYDH >>527
Vulkanドライバーは薄いレイヤーだしコンフォーマンステストも充実してるからドライバーの質が良い可能性は高い
ちなみにOpenGL on Vulkanは既にあるぞ
Khronos謹製じゃないがな
Vulkanドライバーは薄いレイヤーだしコンフォーマンステストも充実してるからドライバーの質が良い可能性は高い
ちなみにOpenGL on Vulkanは既にあるぞ
Khronos謹製じゃないがな
532デフォルトの名無しさん
2016/11/21(月) 18:12:23.08ID:nG5Ze3rJ OpenGLをMFCのシングルフォームビューで使用しています。
ピクチャーコントロールをOpenGLで描画しているのですが、他のウィンドウがかぶっていると描画されません。
何か解決策ないでしょうか?
ピクチャーコントロールをOpenGLで描画しているのですが、他のウィンドウがかぶっていると描画されません。
何か解決策ないでしょうか?
533デフォルトの名無しさん
2016/11/21(月) 21:41:00.70ID:1Z4OsYDH534デフォルトの名無しさん
2016/11/21(月) 23:35:12.90ID:o+vJVwIh535デフォルトの名無しさん
2016/11/21(月) 23:43:31.58ID:1Z4OsYDH >>534
それ言ったらWindows版ブラウザのWebGL実装は全部DirectXを呼び出してるよ
それがVulkanになるのは時間の問題だろうね
WebGL→DirectXは右手系左手系とかシェーダーの違いとか苦労してるみたいだからVulkanの方が親和性は高いはず
上っ面のAPIはずっとWebGLのままだと思う
それ言ったらWindows版ブラウザのWebGL実装は全部DirectXを呼び出してるよ
それがVulkanになるのは時間の問題だろうね
WebGL→DirectXは右手系左手系とかシェーダーの違いとか苦労してるみたいだからVulkanの方が親和性は高いはず
上っ面のAPIはずっとWebGLのままだと思う
536デフォルトの名無しさん
2016/11/21(月) 23:49:37.90ID:1Z4OsYDH そろそろデフォで有効になるWebGL2はPS3以上PS4未満の能力があるから、それで十分だと思うけどね
限界までパフォーマンスを追求するようなプラットフォームじゃないし
限界までパフォーマンスを追求するようなプラットフォームじゃないし
537デフォルトの名無しさん
2016/11/23(水) 12:41:38.02ID:2CpUXBO/ http://floooh.github.io/2016/08/13/webgl-next.html
VulkanをそのままWebに持っていけない理由が色々挙げられてる
セキュリティとか性能の問題とかAPIの複雑さとか色々
それでもWebGLは普通にOpenGLを使うのと比べて遥かにオーバーヘッドがでかいようなので
その辺を改善した後継は出るんなら欲しい
この人によると良くできたOpenGLドライバでネイティブだと60fpsで100kのドローコールが出来るけど
WebGLだと60fpsで出来るのは5,000程度らしい
オンボードのGPU(Intel?)の出来の悪いドライバだと10k程度
VulkanをそのままWebに持っていけない理由が色々挙げられてる
セキュリティとか性能の問題とかAPIの複雑さとか色々
それでもWebGLは普通にOpenGLを使うのと比べて遥かにオーバーヘッドがでかいようなので
その辺を改善した後継は出るんなら欲しい
この人によると良くできたOpenGLドライバでネイティブだと60fpsで100kのドローコールが出来るけど
WebGLだと60fpsで出来るのは5,000程度らしい
オンボードのGPU(Intel?)の出来の悪いドライバだと10k程度
538デフォルトの名無しさん
2016/11/23(水) 13:43:42.26ID:gCl1Ewav Javascriptとかwebassemblyがネイティブコード並に速くならないとwebvulkanがあってもJavascriptの実行自体がボトルネックになって速くならない。
セキュリティチェックが必要だからネイティブコード並に早くするのは無理。
なのでAPI呼び出しを減らせるようにwebglを設計しようということか。
セキュリティチェックが必要だからネイティブコード並に早くするのは無理。
なのでAPI呼び出しを減らせるようにwebglを設計しようということか。
539デフォルトの名無しさん
2016/11/24(木) 03:11:55.41ID:lzhnkyGu Vulkan SDK 1.0.33.0
540デフォルトの名無しさん
2016/11/24(木) 09:37:42.37ID:U66XX0gW >>532
今時MFC?
ウィンドウ被ったら描画されないってWM_PAINTイベントで描画してないとか?
でも最近のWindowsってウィンドウが被っていても消えたりしないよな
デスクトップコンポジションがあるから
今時MFC?
ウィンドウ被ったら描画されないってWM_PAINTイベントで描画してないとか?
でも最近のWindowsってウィンドウが被っていても消えたりしないよな
デスクトップコンポジションがあるから
541デフォルトの名無しさん
2016/11/24(木) 19:18:00.38ID:l2S9PJI8 >>538
JavaScriptとWebAssemblyは同じじゃない
WebAssemblyは遅くてもせいぜいネイティブコードの1.5倍以内の遅さに収まってる
いずれオンゲーはWebAssembly+WebGL2な環境で動かすのが普通になるだろうね
JavaScriptとWebAssemblyは同じじゃない
WebAssemblyは遅くてもせいぜいネイティブコードの1.5倍以内の遅さに収まってる
いずれオンゲーはWebAssembly+WebGL2な環境で動かすのが普通になるだろうね
542デフォルトの名無しさん
2016/11/24(木) 19:45:27.71ID:U66XX0gW そもそもJSじゃ速度が測定時の状況でかなり変わるし
C++じゃ実行時にプロファイリングして得た情報で高速化なんて出来ないし
参照カウントとかで手動でメモリ管理する方がGCより速いとも言えないらしい
APIコールには一定のオーバーヘッドがあるので
それはC++より不利
C++じゃ実行時にプロファイリングして得た情報で高速化なんて出来ないし
参照カウントとかで手動でメモリ管理する方がGCより速いとも言えないらしい
APIコールには一定のオーバーヘッドがあるので
それはC++より不利
543デフォルトの名無しさん
2016/11/24(木) 23:20:47.26ID:l2S9PJI8 >>542
手動でメモリ管理するのは速度の為じゃなくて、適切なタイミングでメモリの取得解放を行う為だ
あとプロファイリングは開発時に散々してチューニングすれば問題無い
実行時にプロファイリングしてC++よりも高速なコードを生成するなんてほとんど幻想に近いが有り得ないことはない
ただそれもあてにならないわけだし、安定したフレームレートが必要なゲームには全く向かない
手動でメモリ管理するのは速度の為じゃなくて、適切なタイミングでメモリの取得解放を行う為だ
あとプロファイリングは開発時に散々してチューニングすれば問題無い
実行時にプロファイリングしてC++よりも高速なコードを生成するなんてほとんど幻想に近いが有り得ないことはない
ただそれもあてにならないわけだし、安定したフレームレートが必要なゲームには全く向かない
544デフォルトの名無しさん
2016/11/25(金) 09:25:52.13ID:2hNWEObD そもそも実行時プロファイリングは最適化に手間(実行時間)をかける価値のある部分を見つけるためのものだよね?
本当なら全部を最適化をしたいけど、実行時コンパイルでそれやると最適化にかかる時間でかえって遅くなるから最適化処理を必要最小限にしたい
→もっとも効果がある部分をプロファイリングで探す…って
C/C++はピックアップせず全てを最適化するからプロファイリングは不要だし
最適化にかかる時間をプログラムの実行時間外(事前)にまわせるから
これより速く動作させる事なんて不可能でしょ
本当なら全部を最適化をしたいけど、実行時コンパイルでそれやると最適化にかかる時間でかえって遅くなるから最適化処理を必要最小限にしたい
→もっとも効果がある部分をプロファイリングで探す…って
C/C++はピックアップせず全てを最適化するからプロファイリングは不要だし
最適化にかかる時間をプログラムの実行時間外(事前)にまわせるから
これより速く動作させる事なんて不可能でしょ
545デフォルトの名無しさん
2016/11/25(金) 09:43:31.68ID:l0xCaCL5 そういうベンチ結果ならあるから絶対ないって事は無いだろう
実際にどんなパターンで実行されるかって情報だけはAOTじゃ分からないからな
それを加味して最適化するとデメリットがメリットが上回り速くなることは有り得る
あまり頻繁に実行しない部分を時間を掛けて最適化してもあまり速度は速くならないし
https://en.wikipedia.org/wiki/Adaptive_optimization
実際にどんなパターンで実行されるかって情報だけはAOTじゃ分からないからな
それを加味して最適化するとデメリットがメリットが上回り速くなることは有り得る
あまり頻繁に実行しない部分を時間を掛けて最適化してもあまり速度は速くならないし
https://en.wikipedia.org/wiki/Adaptive_optimization
546デフォルトの名無しさん
2016/11/25(金) 09:50:03.45ID:kFMSAmJC 実行結果から最適化した方が良いコードを生成できる可能性高いしな。
エラー処理とかまず通らないコードをインライン展開してもコード密度悪くなって逆に性能悪くなるし。
(コンパイラ拡張で最適化のために殆ど通らないって属性付け出来たりするけど)
VC++2017には実行した結果から最適化させる機能が入った
https://msdn.microsoft.com/ja-jp/library/e7k32f4k.aspx
エラー処理とかまず通らないコードをインライン展開してもコード密度悪くなって逆に性能悪くなるし。
(コンパイラ拡張で最適化のために殆ど通らないって属性付け出来たりするけど)
VC++2017には実行した結果から最適化させる機能が入った
https://msdn.microsoft.com/ja-jp/library/e7k32f4k.aspx
547デフォルトの名無しさん
2016/11/25(金) 09:56:19.33ID:zIB8Tv/6 「Rubyのしくみ」に載っているベンチマークでは、
JRubyのループ回数が10万回(0.3秒)から、100万回でも0.3秒なんだよね。
このタイミングでさらに、コンパイルして加速していく
最終的には、1,000万回(1秒)で、CRubyよりも速くなる。
CPUセントリックな処理、つまりI/Oが無い場合、
予測分岐とか最適化技術では、Javaが、Cよりも勝る
JRubyのループ回数が10万回(0.3秒)から、100万回でも0.3秒なんだよね。
このタイミングでさらに、コンパイルして加速していく
最終的には、1,000万回(1秒)で、CRubyよりも速くなる。
CPUセントリックな処理、つまりI/Oが無い場合、
予測分岐とか最適化技術では、Javaが、Cよりも勝る
548デフォルトの名無しさん
2016/11/25(金) 10:03:58.57ID:l0xCaCL5 SwiftShaderもそういう最適化を行うために動的コード生成を利用してるらしい
https://blog.chromium.org/2016/06/universal-rendering-with-swiftshader.html
https://swiftshader.googlesource.com/SwiftShader/+/HEAD/docs/Index.md
https://blog.chromium.org/2016/06/universal-rendering-with-swiftshader.html
https://swiftshader.googlesource.com/SwiftShader/+/HEAD/docs/Index.md
549デフォルトの名無しさん
2016/11/26(土) 17:31:50.79ID:I+dI3pi3 プロファイルベースの最適化は開発時にプロファイリングして
AOTコンパイル時のヒントとするやり方はかなり効果あるだろう
実際chromeが起動時間が20%速くなったとかあったな
それとJITコンパイラする実行しながらプロファイリングするのと一緒にしてはいけない
AOTコンパイル時のヒントとするやり方はかなり効果あるだろう
実際chromeが起動時間が20%速くなったとかあったな
それとJITコンパイラする実行しながらプロファイリングするのと一緒にしてはいけない
550デフォルトの名無しさん
2016/12/16(金) 04:43:37.82ID:SI46tWvu DX11はDX12の機能ほしくなる
あとはいまだにCPUにフレームレート引っ張られるのがいらっとくる
あとはいまだにCPUにフレームレート引っ張られるのがいらっとくる
551デフォルトの名無しさん
2016/12/16(金) 13:27:10.53ID:VkbBq8iG Vulkan SDK 1.0.37.0
552デフォルトの名無しさん
2017/01/10(火) 04:17:52.45ID:L2yDESqP よろしく
553デフォルトの名無しさん
2017/01/15(日) 08:46:04.47ID:9TaWN87P glmapbufferrangeってglbindsubdataで代用できるよね?
554デフォルトの名無しさん
2017/01/18(水) 21:02:07.78ID:0z00bTSD >>535
横からだが、座標系の違いはシェーダ時代だと存在自体がユーザの好みじゃないかな
GLとXの座標系の違いは固定機能が原因で、
シェーダだと座標系変換行列が吸収する。
少なくとも、俺が書いたDirectXのシェーダは、右手座標のモデルを入力して実現できている。
横からだが、座標系の違いはシェーダ時代だと存在自体がユーザの好みじゃないかな
GLとXの座標系の違いは固定機能が原因で、
シェーダだと座標系変換行列が吸収する。
少なくとも、俺が書いたDirectXのシェーダは、右手座標のモデルを入力して実現できている。
555デフォルトの名無しさん
2017/01/18(水) 23:17:38.12ID:W7QnIoZ6 変換行列は一緒だぞ
右座標だろうが左座標だろうが関係ない
右座標だろうが左座標だろうが関係ない
556デフォルトの名無しさん
2017/01/20(金) 11:43:09.83ID:iafDXYrd えっ、Zのプラスとマイナスが違うのに?
557デフォルトの名無しさん
2017/01/20(金) 23:47:40.41ID:OGbCNlg4 Zを+にするか-にするかはアプリがどういう行列を作るかで決めることでグラフィックのAPIレベルでは関係ないぞ。
実際にUnityはGL、Metal、DirectXのどれを使っても左手座標だぞっと。
実際にUnityはGL、Metal、DirectXのどれを使っても左手座標だぞっと。
558デフォルトの名無しさん
2017/01/20(金) 23:49:00.32ID:OGbCNlg4 多分固定機能時代はそれぞれが内部的に決まってたからそういう風に思ってる人が多いんだと思うが
559デフォルトの名無しさん
2017/01/20(金) 23:52:08.78ID:1wzxLI3D >>556
くやしいのぅ
くやしいのぅ
560デフォルトの名無しさん
2017/01/21(土) 01:35:01.75ID:ANcjdt99 でもzの範囲の問題でprojectionは互換なかったりするよね?
561デフォルトの名無しさん
2017/01/21(土) 10:06:17.46ID:NhoYLNrq >>560
それはプロジェクション行列に下駄はかせるか頂点シェーダーで変換すればいいし、右左とは関係ないわな。
それはプロジェクション行列に下駄はかせるか頂点シェーダーで変換すればいいし、右左とは関係ないわな。
562デフォルトの名無しさん
2017/01/21(土) 13:20:01.43ID:ANcjdt99 ああ、なるほど確かに
563デフォルトの名無しさん
2017/01/23(月) 11:52:16.52ID:z+XsKe69 ttp://glslsandbox.com/
ここにglslのサンプルがいっぱいあるけど
ここのglslをコピペして自分のpcで動かしたいけどそういうのってできます?
ここにglslのサンプルがいっぱいあるけど
ここのglslをコピペして自分のpcで動かしたいけどそういうのってできます?
564デフォルトの名無しさん
2017/01/23(月) 17:04:45.86ID:cfoUMNYh DirectXは左手系と言ってるみたいだけど、多分サンプルとかがそういう風に
実装されてるだけで、実際にはアプリが自由に決めていい
ただANGLEの実装ドキュメントによると最後のウィンドウ座標だけはY軸の向きが
OpenGLとDirectXで逆になってて変換する必要があると書いてあった
Y軸逆なのはテクスチャ座標もそうだな
実装されてるだけで、実際にはアプリが自由に決めていい
ただANGLEの実装ドキュメントによると最後のウィンドウ座標だけはY軸の向きが
OpenGLとDirectXで逆になってて変換する必要があると書いてあった
Y軸逆なのはテクスチャ座標もそうだな
565デフォルトの名無しさん
2017/01/23(月) 17:41:56.34ID:7QmIAt4p 同じ座標指定したら右手と左手じゃおかれる位置が明らかに変わるんだから
自由じゃない
自由じゃない
566デフォルトの名無しさん
2017/01/23(月) 18:39:41.15ID:L7YdrHor >>542
jsみたいな高級言語だと、言語自体に予め遊びをいれておき、そこから適切なアルゴリズムを内側で変更するってことは可能じゃないかな
例えば、配列の探索。
シーケンシャルに読むコードであれば、ワークスレッドに分散して速度を稼ぐといった高速化ができる余地がある。
言語にスレッドがないからね
これはcでも可能だが、最適化より予めOpenCLだったかの言語拡張で教え込むことができるから、そのプロファイル自体が要らない。
JavaScriptはよく知らんが、GCと同じでプロセスが落ちたら最適解を忘れそう
jsみたいな高級言語だと、言語自体に予め遊びをいれておき、そこから適切なアルゴリズムを内側で変更するってことは可能じゃないかな
例えば、配列の探索。
シーケンシャルに読むコードであれば、ワークスレッドに分散して速度を稼ぐといった高速化ができる余地がある。
言語にスレッドがないからね
これはcでも可能だが、最適化より予めOpenCLだったかの言語拡張で教え込むことができるから、そのプロファイル自体が要らない。
JavaScriptはよく知らんが、GCと同じでプロセスが落ちたら最適解を忘れそう
567デフォルトの名無しさん
2017/01/23(月) 18:52:56.50ID:L7YdrHor てか、配列探索の説明になってなかった。
配列の場合、言語では配列にみせるが、アクセスがシーケンシャルかインデックス単一要素アクセスのどちらが多いか、要素の削除やクリアの頻度を計るとかがあるような。
それによって内部の変数管理をリストに変更したりベクターにしたりという最適化があり得そう。
だが、実際は予めデザインで決定出来るのだが、そこをダイナミックオプティマイズで設計時間省略!てかはできるかな。
特に素人や頻繁にコードを変えるシーンだと好まれるかもしれない。
スレ違いすまん。
配列の場合、言語では配列にみせるが、アクセスがシーケンシャルかインデックス単一要素アクセスのどちらが多いか、要素の削除やクリアの頻度を計るとかがあるような。
それによって内部の変数管理をリストに変更したりベクターにしたりという最適化があり得そう。
だが、実際は予めデザインで決定出来るのだが、そこをダイナミックオプティマイズで設計時間省略!てかはできるかな。
特に素人や頻繁にコードを変えるシーンだと好まれるかもしれない。
スレ違いすまん。
568デフォルトの名無しさん
2017/01/24(火) 00:14:13.56ID:3QRoTv/K >>565
お前は…
カメラの位置とかデータの内容が全て左手系や右手系を前提に構築されてれば
まったく同じ見栄えのゲームが作れんだよ
だからどっちを選択するのかはアプリの自由という事が理解できないのか?
お前は…
カメラの位置とかデータの内容が全て左手系や右手系を前提に構築されてれば
まったく同じ見栄えのゲームが作れんだよ
だからどっちを選択するのかはアプリの自由という事が理解できないのか?
569デフォルトの名無しさん
2017/01/24(火) 00:40:56.70ID:nvNd8iP1 レンダリングエンジンを抽象化するという発想がないんでしょ
570デフォルトの名無しさん
2017/01/24(火) 00:45:59.50ID:QLkGrWhR 座標データのZのプラスマイナス逆に刷りゃ同じになるけどそれって自由な選択じゃなくて座標系に合わせてデータ差し変えてるわけで 意味合いが違うな
571デフォルトの名無しさん
2017/01/24(火) 00:56:20.21ID:QLkGrWhR ああ右手用データを左手座標にぶちこんでも全部逆になるから結局見た目は同じになるって言いたいわけ?
572デフォルトの名無しさん
2017/01/24(火) 02:15:07.07ID:3QRoTv/K 左手系の為に左手系のデータを用意するのも含めてアプリの自由だと言ってんだよ
やたら頭堅いやつが紛れてるな
やたら頭堅いやつが紛れてるな
573デフォルトの名無しさん
2017/01/24(火) 02:17:37.50ID:3QRoTv/K 左手系の為に左手系のデータやプログラムを用意する
右手系の為に右手系のデータやプログラムを用意する
どっちかを決定するのはDirectXが決める事じゃなくてアプリの自由だという単純な事だぞ?
右手系の為に右手系のデータやプログラムを用意する
どっちかを決定するのはDirectXが決める事じゃなくてアプリの自由だという単純な事だぞ?
574デフォルトの名無しさん
2017/01/24(火) 08:24:46.56ID:HDVL1TLe575デフォルトの名無しさん
2017/01/24(火) 10:19:43.83ID:gBz7Q60o それよりボトムアップなのがややこしい
FBOでテクスチャに描いたときに上下が逆になってしまう
対策は頂点シェーダーで座標を逆転させるか
普通のテクスチャを逆転させるか
FBOでテクスチャに描いたときに上下が逆になってしまう
対策は頂点シェーダーで座標を逆転させるか
普通のテクスチャを逆転させるか
576デフォルトの名無しさん
2017/01/24(火) 15:21:07.00ID:POlkEAF3 Aという行列があるとして
→X=(x,y,z)というベクトルを用意して
→Y = →XA という掛け算をするのが「いわゆる左手系と呼ばれる操作」
↑X'=(
x',
y',
z')
というベクトルを用意して
↑Y' = A↑X' という掛け算をするのが「いわゆる右手系と呼ばれる操作」
の違いでしかない
(要するにどちらも本質的には同じ)
→X=(x,y,z)というベクトルを用意して
→Y = →XA という掛け算をするのが「いわゆる左手系と呼ばれる操作」
↑X'=(
x',
y',
z')
というベクトルを用意して
↑Y' = A↑X' という掛け算をするのが「いわゆる右手系と呼ばれる操作」
の違いでしかない
(要するにどちらも本質的には同じ)
577デフォルトの名無しさん
2017/01/24(火) 18:46:32.22ID:xI5AmToI578デフォルトの名無しさん
2017/01/24(火) 18:56:09.33ID:URo6al7Y 計算回数も変わらないしね
ボトムアップなのは、数学のグラフと同じ座標系にしたかったから、とか聞いたことがある。
xが接線、yが法線、zが従法線として、キチンと向きが揃うとかなんとか
ボトムアップなのは、数学のグラフと同じ座標系にしたかったから、とか聞いたことがある。
xが接線、yが法線、zが従法線として、キチンと向きが揃うとかなんとか
579デフォルトの名無しさん
2017/01/24(火) 19:11:02.74ID:2vak9rNa ttp://stackoverflow.com/questions/4124041/is-opengl-coordinate-system-left-handed-or-right-handed
OpenGLはobjspaceとworldspaceでは右手系で
glOrtho/glFrustumの実装のせいでwindow座標では左手系になるらしい
といっても古いOpenGLのお話
OpenGLはobjspaceとworldspaceでは右手系で
glOrtho/glFrustumの実装のせいでwindow座標では左手系になるらしい
といっても古いOpenGLのお話
580デフォルトの名無しさん
2017/01/24(火) 19:46:57.06ID:iZdMj9Ng Vulkan SDK 1.0.39.0
ttp://vulkan.lunarg.com/sdk/home
ttp://vulkan.lunarg.com/sdk/home
581デフォルトの名無しさん
2017/01/25(水) 16:37:16.52ID:3Z0+5oxH582デフォルトの名無しさん
2017/01/25(水) 16:45:53.74ID:3Z0+5oxH >>578
> xが接線、yが法線、zが従法線として
それだとトップダウンにならないか?
接空間(tangent space)の事を言ってるなら
x=接線(tangent) y=従法線(binormal) z=法線(normal) だな
> xが接線、yが法線、zが従法線として
それだとトップダウンにならないか?
接空間(tangent space)の事を言ってるなら
x=接線(tangent) y=従法線(binormal) z=法線(normal) だな
583デフォルトの名無しさん
2017/01/25(水) 16:46:16.20ID:/RgCtnOd みなさんは3D行列の勉強はどこでしたんですか?
584デフォルトの名無しさん
2017/01/25(水) 17:50:32.20ID:dJzOsR4q してないという選択もlookatに丸投げ
585デフォルトの名無しさん
2017/01/27(金) 17:24:37.23ID:Gw4smznt OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング
https://github.com/daw42/glslcookbook
ここのサンプルは右手系と左手系どちらなのでしょうか
https://github.com/daw42/glslcookbook
ここのサンプルは右手系と左手系どちらなのでしょうか
586デフォルトの名無しさん
2017/01/27(金) 20:23:38.57ID:6W1NRhqZ ハンドネスにやたらと拘る異常者が湧いてるな。
587デフォルトの名無しさん
2017/01/28(土) 10:23:30.45ID:UxEI4Vr6 Vulkan SDK 1.0.39.1
588デフォルトの名無しさん
2017/01/29(日) 16:06:14.97ID:4jsjYD83 GLしか使わないからハンドネスなんかどうでもいいが
原点視点から離れていく方向が+だからGLのほうが自然では無いかと
あんまりなさそうだけど訴訟になった場合の対策でz逆にしたのかしらね
原点視点から離れていく方向が+だからGLのほうが自然では無いかと
あんまりなさそうだけど訴訟になった場合の対策でz逆にしたのかしらね
589デフォルトの名無しさん
2017/02/03(金) 14:26:53.63ID:mgnUKpuI ジンバルロックの理屈はわかるけど、実際何が問題なの?2軸が重なろうが構わず指定通り回転させればいいのでは?
590デフォルトの名無しさん
2017/02/04(土) 02:53:25.98ID:Jz71o7M0 2軸を外積を使って残りの軸を割り出す時に、完全に2軸が重なってると
外積の結果はゼロベクトルになってしまうけど、微妙な距離だと方向が
激しく変化する事により、向きがブルブルしてしまう事をジンバルロックと言う
外積の結果はゼロベクトルになってしまうけど、微妙な距離だと方向が
激しく変化する事により、向きがブルブルしてしまう事をジンバルロックと言う
591デフォルトの名無しさん
2017/02/04(土) 03:01:48.01ID:Jz71o7M0 (以下Y軸プラス方向が真上とする)
よくある状況としてはlookatを使う時に普通はUpベクトルにY軸を渡すけど
真上を向こうとした時に方向ベクトル(eye - center)がY軸とほぼ同じ方向に
なった時にサイドベクトル(X軸)が>>590の状況により、激しく変化して
グルグル回ってしまうとかある
よくある状況としてはlookatを使う時に普通はUpベクトルにY軸を渡すけど
真上を向こうとした時に方向ベクトル(eye - center)がY軸とほぼ同じ方向に
なった時にサイドベクトル(X軸)が>>590の状況により、激しく変化して
グルグル回ってしまうとかある
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【朗報】日銀植田総裁「高市さんからの要望は特になかった」 [519511584]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
