クロスプラットフォームの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
468デフォルトの名無しさん
2016/11/02(水) 13:41:59.29ID:VDmk3Fbl スマホこそ消費電力減らすために導入は必須だよ。
やり方が違って複雑だと嘆いているアホでしょ。
やり方が違って複雑だと嘆いているアホでしょ。
469デフォルトの名無しさん
2016/11/02(水) 18:10:39.64ID:ExTjOOin >>468
ちゃんと記事読んでないアホ発見
ちゃんと記事読んでないアホ発見
470デフォルトの名無しさん
2016/11/02(水) 23:38:20.18ID:jxsSxn8m VulkanはAMDが自社GPUを効率良く動かすために実装したMantleがベースになってるから
> 基本的にVulkan専用のハードとか作っている会社は無いと思うので
こんな事言ってる奴は馬鹿丸出しで見てて恥ずかしくなる…
PS4のAPIもAMDが実装しててVulkanに似てるしもっと低レベルなAPIだ
PS4で自社エンジンでゲーム作ってる会社はみんなVulkanより低レベルのAPIで作ってる
当然難しいのは間違いないが、日本語の詳細なドキュメントやらサンプルやらついてるから
ある程度経験者なら普通に使うことは出来る
> 基本的にVulkan専用のハードとか作っている会社は無いと思うので
こんな事言ってる奴は馬鹿丸出しで見てて恥ずかしくなる…
PS4のAPIもAMDが実装しててVulkanに似てるしもっと低レベルなAPIだ
PS4で自社エンジンでゲーム作ってる会社はみんなVulkanより低レベルのAPIで作ってる
当然難しいのは間違いないが、日本語の詳細なドキュメントやらサンプルやらついてるから
ある程度経験者なら普通に使うことは出来る
471デフォルトの名無しさん
2016/11/02(水) 23:48:26.87ID:jxsSxn8m ちなみに10年も前のPS3から低レベルAPIだぞ
ただマルチスレッド未対応だったから今ほどは洗練されてなかったと思われる
PS3の頃はシェーダー未経験な人ばっかだからみんな面食らって
想定した全機能を実装するのに数ヶ月どころか半年近く掛かるなんてざらだったと思われる
ただマルチスレッド未対応だったから今ほどは洗練されてなかったと思われる
PS3の頃はシェーダー未経験な人ばっかだからみんな面食らって
想定した全機能を実装するのに数ヶ月どころか半年近く掛かるなんてざらだったと思われる
472デフォルトの名無しさん
2016/11/03(木) 00:19:08.23ID:FmaYciHx 複雑で嘆くのはみんな通る道だが、1本グラフィックエンジン仕上げてもいないのに
クソと言ってしまうのが無能な証拠
Vulkanでゲームを1本マスターアップさせてから、やっぱりVulkaクソだったと言うなら間違いなくクソなんだろう
クソと言ってしまうのが無能な証拠
Vulkanでゲームを1本マスターアップさせてから、やっぱりVulkaクソだったと言うなら間違いなくクソなんだろう
473デフォルトの名無しさん
2016/11/03(木) 00:52:21.85ID:szl3IS/m 無能な奴でも使えるもん作れない奴らも無能だわ。
つーか、日本語で唯一vulkanの情報を発信していた人がサジを投げたわけだな。
つーか、日本語で唯一vulkanの情報を発信していた人がサジを投げたわけだな。
474デフォルトの名無しさん
2016/11/03(木) 01:02:58.29ID:FmaYciHx だから、無能な奴はOpenGL使ってればいいだろ。まだ進化もドライバサポートもしてんだし
Vulkanは限界までパフォーマンスを引き出す為のもんだよ
お前らがゲームのグラに一喜一憂するから、開発者はどんだけ難しくて大変でも
ちゃんとパフォーマンスさえ出れば何でも使うんだよ
Vulkanはパフォーマンスがちゃんと出るか出ないかが問題なんだよ
Vulkanは限界までパフォーマンスを引き出す為のもんだよ
お前らがゲームのグラに一喜一憂するから、開発者はどんだけ難しくて大変でも
ちゃんとパフォーマンスさえ出れば何でも使うんだよ
Vulkanはパフォーマンスがちゃんと出るか出ないかが問題なんだよ
475デフォルトの名無しさん
2016/11/03(木) 02:31:52.70ID:TH6IiknO PS4のAPIがVulkanより低レベルとか本気でいってんのかな…
476デフォルトの名無しさん
2016/11/03(木) 02:59:06.79ID:FmaYciHx ん?GNMXじゃなくてGNMの事だぞ?
なかなか情報がないけど
http://www.neogaf.com/forum/showthread.php?t=1021024
> Sony’s current API is much low level compared to Mantle and even Vulkan
MantleやVulkanと比べてもとてもローレベルと言ってるぞ
なかなか情報がないけど
http://www.neogaf.com/forum/showthread.php?t=1021024
> Sony’s current API is much low level compared to Mantle and even Vulkan
MantleやVulkanと比べてもとてもローレベルと言ってるぞ
477デフォルトの名無しさん
2016/11/03(木) 03:16:03.88ID:UYPiUT6+ 多分「低レベル」の意味を勘違いしてる素人
478デフォルトの名無しさん
2016/11/03(木) 03:16:29.40ID:FmaYciHx こっちがソースか
http://gamingbolt.com/ps4-should-support-vulkan-ps4s-api-not-completely-native-for-current-gen-yet-brad-wardell
> their low-level API is still lower level than Mantle and Vulkan
って明確にVulkanよりローレベルって言ってる
GNMはハード直叩きに限り無く近いからな
http://gamingbolt.com/ps4-should-support-vulkan-ps4s-api-not-completely-native-for-current-gen-yet-brad-wardell
> their low-level API is still lower level than Mantle and Vulkan
って明確にVulkanよりローレベルって言ってる
GNMはハード直叩きに限り無く近いからな
479デフォルトの名無しさん
2016/11/03(木) 03:23:08.12ID:FmaYciHx480デフォルトの名無しさん
2016/11/03(木) 07:29:33.57ID:85+c+nbh つーか素人うぜえよ
テメエで使ったこともねえくせに
良いだの悪いだの
アホじゃねーの?
テメエで使ったこともねえくせに
良いだの悪いだの
アホじゃねーの?
481デフォルトの名無しさん
2016/11/03(木) 09:55:27.53ID:szl3IS/m なら玄人しかいない場所いけよ馬鹿
482デフォルトの名無しさん
2016/11/03(木) 11:51:36.18ID:jbyLkc4A 手続きの手順が違うから
まっさらからVulkanに合わせて作るならともかく
既存のOpenGLベースのコードの中身を入れ替えたり拡張するような使い方じゃ性能でないよって話だよね?
まっさらからVulkanに合わせて作るならともかく
既存のOpenGLベースのコードの中身を入れ替えたり拡張するような使い方じゃ性能でないよって話だよね?
483デフォルトの名無しさん
2016/11/03(木) 12:13:24.92ID:6FeMk1RE プログラム書かないひとかもね
484デフォルトの名無しさん
2016/11/03(木) 13:01:20.70ID:x7ofF0dY 質問です
画像を描画する際、配列を渡して一斉に描画するほうが高速だと聞きました
ですが渡す配列が固定長だと描画枚数が増えた時に柔軟に対応できない気がします
皆さんはそういった場合、毎フレーム動的配列を生成・削除してるのでしょうか?
画像を描画する際、配列を渡して一斉に描画するほうが高速だと聞きました
ですが渡す配列が固定長だと描画枚数が増えた時に柔軟に対応できない気がします
皆さんはそういった場合、毎フレーム動的配列を生成・削除してるのでしょうか?
485デフォルトの名無しさん
2016/11/03(木) 13:25:03.45ID:6FeMk1RE 前回と同じサイズのものは使いまわす
っていうかそんなことより0で埋めるとか馬鹿な初期化する方が無駄
っていうかそんなことより0で埋めるとか馬鹿な初期化する方が無駄
486デフォルトの名無しさん
2016/11/03(木) 13:34:07.71ID:x7ofF0dY 前回と同じサイズのものは使いまわせばいいことは分かっています
描画する数が毎回変わるならどうすれば・・・って話です
描画する数が毎回変わるならどうすれば・・・って話です
487デフォルトの名無しさん
2016/11/03(木) 13:35:50.93ID:6FeMk1RE 気になるなら予め最大値判る大きさにしとけよ
488デフォルトの名無しさん
2016/11/03(木) 13:43:51.84ID:x7ofF0dY 描画したくないものまで描画されるじゃないですか
画面外に描画する。それでいいんですかね
めんどくさいので配列として扱わないことにしました
画面外に描画する。それでいいんですかね
めんどくさいので配列として扱わないことにしました
489デフォルトの名無しさん
2016/11/03(木) 17:31:55.68ID:M9JiIIXY みんなマルチスレッド化されたOpenGLが欲しかったんだよね?
490デフォルトの名無しさん
2016/11/03(木) 17:47:51.27ID:MnQTEHWt そうでもない
491デフォルトの名無しさん
2016/11/03(木) 19:19:47.74ID:FmaYciHx492デフォルトの名無しさん
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 てか、配列探索の説明になってなかった。
配列の場合、言語では配列にみせるが、アクセスがシーケンシャルかインデックス単一要素アクセスのどちらが多いか、要素の削除やクリアの頻度を計るとかがあるような。
それによって内部の変数管理をリストに変更したりベクターにしたりという最適化があり得そう。
だが、実際は予めデザインで決定出来るのだが、そこをダイナミックオプティマイズで設計時間省略!てかはできるかな。
特に素人や頻繁にコードを変えるシーンだと好まれるかもしれない。
スレ違いすまん。
配列の場合、言語では配列にみせるが、アクセスがシーケンシャルかインデックス単一要素アクセスのどちらが多いか、要素の削除やクリアの頻度を計るとかがあるような。
それによって内部の変数管理をリストに変更したりベクターにしたりという最適化があり得そう。
だが、実際は予めデザインで決定出来るのだが、そこをダイナミックオプティマイズで設計時間省略!てかはできるかな。
特に素人や頻繁にコードを変えるシーンだと好まれるかもしれない。
スレ違いすまん。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 中国に武力併合されるのを防ぐ方法、ロシアに併合されるしかない
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- セブンのななチキ美味い😋
- 中国人「じゃあ漢字使うなよ」日本人「あわわ…」
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
