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/
0596デフォルトの名無しさん
垢版 |
2017/02/05(日) 04:27:58.79ID:D/nQCvX6
カメラの視線ベクトルも上ベクトルも、極座標変数θ、φから計算して常に直交するようにして与えてる。
0597デフォルトの名無しさん
垢版 |
2017/02/05(日) 23:06:56.76ID:wiSnBw0r
FPSみたいなゲームだと真上を向くのは人間の首だからY軸と一定の角度以上には
上を向けないように制限してジンバルロックに対処してるのがほとんどだな
0598デフォルトの名無しさん
垢版 |
2017/02/06(月) 15:28:30.58ID:GIjsSpfL
再度ジンバルロックについてお尋ねします。

軸が重なると言っているのは、初期姿勢のXYZ軸と、
回転後のXYZ軸が重なるということを言っているのだと思いますが、
2番目だけ90度だとマズイと言っていますが、
1番目を90度にしても軸は重なりますよね?

例えばXYZ軸の順で回転したい場合、
X軸をいきなり90度回せばY軸とZ軸は重なってしまうと思うのですが、
これはジンバルロックにならないのでしょうか?
0599598
垢版 |
2017/02/06(月) 15:30:51.89ID:GIjsSpfL
また、2番目を90度にしても、一番目を何度か動かせば、
初期軸と回転後の軸は重ならないと思うのですが。

XYZ軸の順で回転させる場合、
Xを45度回し、Y軸を90度回しても、回転後のX軸と最初のZ軸は重なりませんよね?
0601598
垢版 |
2017/02/06(月) 15:49:33.60ID:GIjsSpfL
じゃあ結局、何が問題なんです?
0602デフォルトの名無しさん
垢版 |
2017/02/06(月) 21:07:00.36ID:NefZ0m3+
回転と考えるから理解出来ないんだよ
単にあるものを回転させてるだけならジンバルロックなんて起きない
いわゆるジンバルを中のリングはいじらずにそのもの全体をぐるぐる回してるに過ぎない
ジンバルロックというのは中のリングの内2つが同一平面上にある時の事を言う
その状態は要するに2軸が完全に重なっている事を意味する
そうすると残りのリングは一方向に回転するしかなくなり、向きたい方向に向け無くなってしまう
これが厳密な意味でのジンバルロックだ。わかったか?
3軸が全て垂直を保ったままの回転はジンバルロックは起きない
で、3D計算上でのジンバルロックというのはlookatのコードのように2軸から
外積を使って3軸目を求める時に2軸がほぼ重なってる時に向きがランダムな
状態になる事を言う
0605デフォルトの名無しさん
垢版 |
2017/02/11(土) 10:32:30.83ID:PXmesQvE
シェーダコードと頂点、テクスチャの無償寄付サイトになるな
0606デフォルトの名無しさん
垢版 |
2017/02/11(土) 10:53:09.39ID:1GGXJcPM
ソースコード公開されてたらタダだーと勝手にコピーして使っちゃう人?
0609デフォルトの名無しさん
垢版 |
2017/02/11(土) 13:40:07.89ID:qtSuuft0
バレなきゃok
わかりっこないし
こんなもんよ
0612デフォルトの名無しさん
垢版 |
2017/02/11(土) 14:12:23.72ID:bHUvh3Vs
WebGLはTyped Arrayの内容をいちいちアップロードせずにテクスチャやバッファとして使えないかとは思う
VRAMが共有されてる環境ならコピー無しで使える

しかしGPUが使用中のデータは書き換えてはいけなかったり
GCがコンパクションでデータを移動しないようにメモリ上の位置を固定→パフォーマンスが低下するなど
ややこしい事になるかもしれない
0613デフォルトの名無しさん
垢版 |
2017/02/11(土) 18:55:07.85ID:1GGXJcPM
>>609
バレて炎上してるのはこういう人が居るからか。
0614デフォルトの名無しさん
垢版 |
2017/02/13(月) 04:30:53.35ID:AsOjEe+m
>>602
なんかジェットコースター宙返りのように反り続けていくとてっぺんで急に向きがくるんと変わっちゃうあれですよね。
0615デフォルトの名無しさん
垢版 |
2017/02/14(火) 20:31:42.76ID:82eoCw7d
Intelも新グラフィックスドライバでVulkanに対応
ttp://pc.watch.impress.co.jp/docs/news/1044145.html
0617デフォルトの名無しさん
垢版 |
2017/02/15(水) 11:08:57.36ID:N3aAX75A
フライトシミュレーターでもあるな
0619デフォルトの名無しさん
垢版 |
2017/02/16(木) 19:23:56.82ID:UHUABR+a
>>612
BufferObjectをダブルバッファにすればGPUとCPUで並列処理出来るよ
実際にコピーしてるかどうかはドライバ次第だ
Intelの内蔵GPUとかはコピーしてない気もするからな(実際のところは知らん)
0623デフォルトの名無しさん
垢版 |
2017/03/30(木) 19:32:54.16ID:aP5Dk+hE
スマソが、グローシェーディングとかするのに法線使うけど、
その場合、頂点と1対1にするの?
OBJファイルでインデックス方式になってるのを、uv含めて展開するのが正しいのかな?
0625デフォルトの名無しさん
垢版 |
2017/04/01(土) 08:37:36.41ID:qoKXZv+f
>>619
最近だとテクスチャをダイナミックに更新したい場面が多い。
バッファオプジェクトのRO宣言って割りと意味ないと思う。
drawを非同期実装とかしないでしょ。
0628デフォルトの名無しさん
垢版 |
2017/04/09(日) 23:59:57.43ID:b2Udeo0n
どうか教え下さい
AndroidアプリでNDK側でOpenGLESでテスクチャ作ってるのですが、
それをJava側に渡してGLSurfaceViewで表示したいです
readPixelsで配列データとして渡して表示はできたものの、遅すぎてゲームアプリとしては破綻していて。。。

どんな方法がベストでしょうか?やはり、コンテキストを共有するしかないでしょうか?
0629デフォルトの名無しさん
垢版 |
2017/04/10(月) 00:15:57.40ID:Ly5iuPId
ベストを探す前に素直にサンプルと同じやり方を試すべきだと思う
そうしない理由があるのならそれを言わんことには
0630デフォルトの名無しさん
垢版 |
2017/04/10(月) 00:47:22.23ID:uhMdRFo2
サンプルってどれっすかね?
試すのは大丈夫なんですが、描画スレッド(Java側)と演算スレッド(NDK側)みたいな感じす
スレッド跨いでEGLコンテキスト共有とか、知識あんまり無いです。。
Java側はGLSurfaceView使ってるので、単なるSurfaceViewに変えないとだめっすかね。。
0632デフォルトの名無しさん
垢版 |
2017/04/10(月) 21:03:21.49ID:cUDmNFgv
>>631
レス遅くなってすみません
シェーダー使うのもありですが、framebufferからreadpixelsする変わりにシェーダーで対応ってのがどうゆうことか理解できてません

とりあえずNDK側でガリガリ作った画をJava側に60fpsで渡す方法があれば何でも試します
0634デフォルトの名無しさん
垢版 |
2017/04/10(月) 22:21:58.29ID:PM83VykM
スレッドがJavaとNDK側で別なんです
そしてJava側はGLSurfaceViewなので、なおさらコンテキストは共通化できてないっす
0636デフォルトの名無しさん
垢版 |
2017/04/10(月) 23:08:39.40ID:PM83VykM
>>636
ndk-bundleのソースフォルダのサンプルが使えるってことですか?
使えそうなサンプルは無いように見えますが。。
教えて下さい。
0637デフォルトの名無しさん
垢版 |
2017/04/10(月) 23:18:56.98ID:Ly5iuPId
だから何で自分の流儀を前提にしている訳?

あんたの流儀はあんたが一番知っているんだから
他人に聞くだけ無駄だよ
0638デフォルトの名無しさん
垢版 |
2017/04/10(月) 23:36:22.60ID:2T6RGgt8
こういう支離滅裂なアドバイス(?)する奴はなんなんだろうね?酔っぱらってんのか?
0639デフォルトの名無しさん
垢版 |
2017/04/11(火) 00:26:38.47ID:C7b4Lnba
Androidの事は知らんけど、単にコンテキスト間でリソース共有にすればいいだけだよね。
Windowsならできる。同様のAPIあるんじゃね。
0641デフォルトの名無しさん
垢版 |
2017/04/11(火) 17:50:22.73ID:JnGBstZh
横からスマソ、
俺もアンドロイドのOpenGL弄ってるんだけど、
GLES20.glxxxがラッパー?で、上で言ってるglxxxがNDKとか言うやつ?
サイトでよく出てくるサンプルはGLES20.使ってるけど、
そのNDKとやらを使うと速いとかなんかいい事あるの?
0642デフォルトの名無しさん
垢版 |
2017/04/11(火) 18:56:16.06ID:4xO2/YqC
>>641
VM介さないから処理によっては速度が全然違う
ゲームとかはフルndkのほうがパフォーマンスが良い
これ以上はAndroidスレで聞いたほうがいい
0644デフォルトの名無しさん
垢版 |
2017/04/11(火) 21:13:28.73ID:FtBQsLuE
Javaだろうと、NDKだろうとスレッド別なら全く別処理でテクスチャも何もかも共有できないよね?
0646デフォルトの名無しさん
垢版 |
2017/04/12(水) 00:32:08.21ID:BrgOd/52
OpenGLESの知識は浅井ですが、自分の認識です↓
ttp://eaglesakura.hatenablog.com/entry/2013/12/28/235121
0649デフォルトの名無しさん
垢版 |
2017/04/12(水) 12:54:48.21ID:Pb3LvWpJ
>>648
そうです。
その代替案を探してるだけなんですが、描画と処理のスレッド別なので、テスクチャIDやフレームバッファを共有できない(EGLコンテキスト共有できない)と思ってましたが方法ありそうですね
0650デフォルトの名無しさん
垢版 |
2017/04/12(水) 21:35:08.21ID:+eTr5qap
androidのことは詳しくないけどJava側のレンダリングスレッドからネイティブのレンダリング処理出すんじゃだめ?
CPUは並列に動かせてもGPUは並列には動かないし、別スレッドに分ける意味余りないよね?
0654デフォルトの名無しさん
垢版 |
2017/04/15(土) 23:00:51.04ID:FDBlI7Dn
未定義つうか禁則じゃねVBO使わずにnioバッファの時は勝手に調停してくれてたんだが
0655デフォルトの名無しさん
垢版 |
2017/05/05(金) 12:53:47.74ID:2J56jDbL
ほんと初心者で申し訳ないのですが、質問をお許しください。

現在、MAX/MSP jitterを使っているものです。

GLSLの勉強をしているのですが、例えばjitter側で生成した球に、
グローエフェクトをかけたい場合、どういう考え方でGSGLを記述したらよいでしょうか。

vvvvとかならグローエフェクト専用のノードで一発なのに、
MAXでシェーダを書く場合の例とかいろいろ検索しても出てきません。

質問自体もおかしなところがあるかも知れませんが、是非MAXの環境で
映像を作っていきたい理由があるので、どなたかご教示お願いします。
0656デフォルトの名無しさん
垢版 |
2017/05/09(火) 08:46:01.87ID:8Otut7+9
>>654
未定義=禁則だと思うけど
0657デフォルトの名無しさん
垢版 |
2017/05/10(水) 16:50:07.71ID:3NirUCdu
未定義は定義してないってことだね
禁則はやっちゃいけないってことだね

全然別の意味だね君の頭の中までは文句は無いよ
脳内の混同は取るに足らないありふれた事象だし
0658デフォルトの名無しさん
垢版 |
2017/05/10(水) 22:22:29.85ID:P1RskujE
>>657
プログラマは未定義動作をするプログラムを書いてはいけない事に変わりない。やっちゃいけないことだよ。
0660デフォルトの名無しさん
垢版 |
2017/05/10(水) 22:46:38.87ID:P1RskujE
>>659
流れを読もうね
0662デフォルトの名無しさん
垢版 |
2017/05/11(木) 04:33:17.40ID:QJPjjG3O
未定義動作なんて聞かない言葉だと思ってググったらバッファの初期化忘れのことかよ
もしも初期化してなきゃ最初の1フレームは起きるかもしれないが件のは前のフレームと
次のフレームとの境目で起きると思われるちらつきだから未定義動作とやらでは無いわな
0663デフォルトの名無しさん
垢版 |
2017/05/11(木) 07:55:54.57ID:wBC9RJQi
ここってC言語を知らない人も居るんだね
0664デフォルトの名無しさん
垢版 |
2017/05/11(木) 09:34:12.49ID:fwiX6jdh
WebGLだとセキュリティ上の理由でglMapBufferみたいな安全を保証できない機能は使用禁止
0665デフォルトの名無しさん
垢版 |
2017/05/16(火) 18:19:56.36ID:EpxzEiEV
GTX1060(モニター@を接続)とQuadro4000(モニターAを接続)の2枚差し
PhotoshopなどのOpenGL系でGTX側に接続しているモニター@を10bitカラー表示させることってでませんか?

どのような効果が見込めるか分からなかったのですが、
NVIDIAコントロールパネル/3D設定の管理/OpenGLレンダリングGPU
の設定ではグローバル設定→Quadro4000に変更してみました
0666デフォルトの名無しさん
垢版 |
2017/05/16(火) 23:46:49.25ID:eU5MEqDJ
photoshopなら設定にあるけど他のソフトはソフトが対応してるかだからユーザーがどうこうできる問題じゃない
0667デフォルトの名無しさん
垢版 |
2017/05/19(金) 03:27:17.75ID:Xjl9lHc/
>>664
つうかWebGL以前にglMapBufferはOpenGL ESにねーし
GLESベースのWebGLに無くて当然
WebGL1.0でもテクスチャ使えば似たような事は出来る
0669デフォルトの名無しさん
垢版 |
2017/05/21(日) 08:13:42.34ID:GufdndHa
glewの2.0.0のVC10のglew.slnをビルドすると
error LNK2019:未解決の外部シンボル memsetが関数 glewContextInitで参照されました
と出てビルドできないのですが、どう直せばいいのでしょうか?
0670669
垢版 |
2017/05/21(日) 08:18:16.21ID:GufdndHa
ちなみにソリューションを検索しても「memset」の文字列は出てきませんでした。
0672デフォルトの名無しさん
垢版 |
2017/06/08(木) 10:00:16.18ID:gWFivyAT
VAOで描画する時ってglBufferSubDataとかで毎フレーム頂点データを書き換えるような場合は使えない?
0677デフォルトの名無しさん
垢版 |
2017/08/13(日) 07:54:40.85ID:p1FRAySF
人とAIの共存を主とする「Google PAIR」、機械学習(NN含む)をブラウザ上で全て実行できるWebMLライブラリ「deeplearn.js 0.1.0」をリリース
http://shiropen.com/2017/08/12/27359

人を中心としたAIシステムの研究と設計をするGoogleのプロジェクト「The People + AI Research Initiative(PAIR)」は、
ブラウザ上で機械学習(Machine learning)を全て実行できるオープンソースライブラリ「deeplearn.js 0.1.0」をリリースしました。

本ライブラリは、可能な限り多くの人に機械学習を開かせたいという思いのもと開発されました。
その為、インストールやバックエンドなし、ブラウザ上で全て実行できる仕様になっています。

今までもWeb Machine learning(WebML)ライブラリは存在していましたが、
Javascriptの速度によって制限されていたり、
訓練ではなく推論に限定されていたりしていました。

一方で、deeplearn.jsは、
WebGLを利用しGPUで計算することで大幅にスピードアップさせ、
またニューラルネットワークを学習させる際に用いられるアルゴリズムBackpropagation(バックプロパゲーション)機能も備わっています。
0679デフォルトの名無しさん
垢版 |
2017/08/14(月) 19:53:09.75ID:VWupTZlZ
> 「OpenGL 4.6」が公開
> 「OpenGL 4.6」の仕様公開を発表した
> OpenGL 4.5は2010年に登場したOpenGL 4系の最新版。
> OpenGL 4.5の仕様はプロジェクトのWebサイトで公開されている。
0680デフォルトの名無しさん
垢版 |
2017/08/15(火) 06:34:36.43ID:K8T9Hr6g
Androidで動くVulkanとOpenGLESの比較できるベンチマークアプリ知らない?
0682ねこまじ
垢版 |
2017/08/15(火) 14:44:30.18ID:SeXfrzIV
最新トップYoutuberの年収は10億円、1億円の時代はもう古い
http://www.himatubushisp.com/entry/2017/05/10/224945
Youtuberヒカルが月収を明らかに!!おはよう朝日です出演
https://www.youtube.com/watch?v=RLZGrqQnnZc
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&;t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&;t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&;t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&;t=118s

最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいい
手っ取り早く視聴数稼ぐには有名ユーチューバーへの物申す系動画がオススメ
しばたーやよりひとやkunやぽんちやモンスタージョンなどを真似すればいい
0683デフォルトの名無しさん
垢版 |
2017/08/15(火) 18:57:14.86ID:K8T9Hr6g
AndroidでGLES2で実装されてるやつをVulkanに置き換えてみたんだが1/3(GLES2は45 Vulkanは15程度)しかFPS出なかった。(3D性能自体あんまりよくない中華スマホ)
単純に置き換えただけじゃFPS出ないとはよく言われてるし最適化考えてないベタ移植だからこんなもんかなぁと思ってたんだが、Windows上のNVIDIA環境で動かしたら1割アップ(GL3は880、Vulkanは1000)してた。
これデバイスの特性ってやつなのかスマホのドライバーがアレなのかどっちだと思う?
デバイスの特性だったとしたらどうやって最適化したらええんやろか…
0684デフォルトの名無しさん
垢版 |
2017/08/15(火) 20:06:35.95ID:W1XYAgOO
モバイルだとライフサイクルからして
ドライバとデバイスを分ける意味はあんまりないと思うけど

ベタ移植でも環境によっては効果があるなら
両方実装して性能の良いほうに切り替えれば良いのでは
0686デフォルトの名無しさん
垢版 |
2017/08/17(木) 02:04:48.89ID:B3yfRGJG
自前じゃ一枚絵を出すのも大変そうだから公式レンダラを
みんなでチューニングやカスタマイズみたいな方向になるのかしらね
0687デフォルトの名無しさん
垢版 |
2017/08/17(木) 21:32:39.45ID:rdQtPA4Z
>>683
不明要素が多いから何とも言えない
バックバッファの切り替えウェイト、デバイス固有のリミッタとかに填まっている可能性もある。
中身はARMで泥ならば、所詮はVM。
変更できない要素に左右される。
例えば、電池消耗を抑えるためにフレームレートを制限なんかは想像しやすい。
MS違う
0690デフォルトの名無しさん
垢版 |
2017/08/18(金) 00:22:15.98ID:sNIlJiAD
電池理由でアプリに制限を掛ける。
そういう設計もあるって話。
スマホでfpsを求めるのが間違い。
一番電池を消耗するのは、電波発信。
次がバックライト。その次がプロセッサ
0691デフォルトの名無しさん
垢版 |
2017/08/18(金) 07:09:40.57ID:U5k+yUmQ
どう解釈したら>>690>>687が繋がるのかさっぱり分からん

電池理由でアプリに制限を掛ける設計があるとして
GLES2とVulkanで性能差が出る説明にならないし

結局はアプリによるが
性能が限られたスマホだからこそfpsが求められるんじゃないの?
要求が60fps超でなく例えば30fpsだとしても
0694デフォルトの名無しさん
垢版 |
2017/08/18(金) 19:27:32.86ID:0EPwtIc2
JavaってC#みたいな構造体やポインタの操作みたいな
ローレベルな事は出来ないけど
VulkanみたいなローレベルのAPIを持ってけんの?
0695デフォルトの名無しさん
垢版 |
2017/08/19(土) 06:09:39.23ID:43kvAmEv
提供されるとは思わんが
できるかできないかで言えばで
構造体は「同等のバイナリを生成する」クラスで実現できるし
ポインタ操作(演算)はそもそも必要ないだろう
ポインタ使った最適化したければNDK使えで済む話
■ このスレッドは過去ログ倉庫に格納されています

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