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/
0713デフォルトの名無しさん
垢版 |
2017/09/10(日) 17:16:46.12ID:mFLa2LdI
俺がOpenGL始めたの2007年くらいだったけど
そのころは固定機能パイプラインによる解説ばっかだった気がする。

スマホが普及してESが登場した頃から日本度でもまともにGLSLを学習できるようになった気がする。
0714デフォルトの名無しさん
垢版 |
2017/09/10(日) 17:42:43.64ID:BEQ6+h7v
当時はリアルタイムグラフィックス分野はDirectXが開拓していた
だからあえてOpenGLをやる人は
クロスプラットフォームだとか互換性を重視していた

DirectXやっていた人がOpenGLに流れたのが
スマホが普及してESが登場した頃であって
OpenGL内だけで言えば固定機能パイプラインとの決別は
OpenGL3の策定時点(それこそ2007年頃)で既に決定的だったと思う
0715デフォルトの名無しさん
垢版 |
2017/09/11(月) 01:49:20.13ID:SnGLKWrX
>>712
それなら素直にOpenGLES1.1使えばええやん
0716デフォルトの名無しさん
垢版 |
2017/09/12(火) 03:45:02.98ID:mnRL344l
動作も軽いし製作者の力量でソコソコ綺麗な絵出るもんね
ただ時代の流れでサポ切りとかあるのか無いのか知りたい
0717デフォルトの名無しさん
垢版 |
2017/09/18(月) 15:43:19.63ID:5qvGYV/U
GLES自体新しくて多くの端末で動いてるし動かないアプリが出ても困るから安易に切られることはナイアル
0718デフォルトの名無しさん
垢版 |
2017/09/22(金) 03:12:56.81ID:0XQ4k8W6
スマホはDirectX使えないからな
必然的に互換性という面でOpenGLが出てくる
スマホ、特にAndroidはパフォーマンス厳しいしVulkanに頼りたくなる
0719デフォルトの名無しさん
垢版 |
2017/09/22(金) 03:13:57.05ID:0XQ4k8W6
OpenGL系は基本後方互換前提の代物だからそうそう切られることはないはず
アーキテクチャの違いでパフォーマンスが下がるとかはあるかもしれないけど誤差の範囲でしょ
0720デフォルトの名無しさん
垢版 |
2017/10/04(水) 23:04:11.00ID:HVw4BQOs
glutってグラットって読む?
0721デフォルトの名無しさん
垢版 |
2017/10/05(木) 02:48:26.46ID:iTr/aZ+d
GLUT (pronounced like the glut in gluttony) is the OpenGL Utility Toolkit, a window system independent toolkit for writing OpenGL programs.
0722デフォルトの名無しさん
垢版 |
2017/10/05(木) 02:50:51.64ID:iTr/aZ+d
グラトゥニー
グラットゥニーのグラットゥ
0723デフォルトの名無しさん
垢版 |
2017/10/05(木) 08:50:05.88ID:OFcuCCap
dクス
0725デフォルトの名無しさん
垢版 |
2017/10/08(日) 21:19:52.29ID:UyktAqAp
glutでポリゴンにアンチエイリアスかけれないんだが。
線ならかけれるのに。
どうやんの?
0727デフォルトの名無しさん
垢版 |
2017/10/08(日) 23:35:58.43ID:GvYlDhJz
実際のところ画面の高解像度化で
アンチエイリアシングなしでも
そこそこ鑑賞に堪えうるようになってしまった
ミップマップや異方性フィルタリングは欲しいが
0728デフォルトの名無しさん
垢版 |
2017/10/09(月) 00:10:18.61ID:YU1H7ndt
glutはグルトだろ
0732デフォルトの名無しさん
垢版 |
2017/11/15(水) 09:49:36.57ID:uTPoKijJ
>>730
別にWinでもVulkan普通に動くじゃん
Androidでもいつかはみんな使うようになる
問題はAppleなんだよな
0733デフォルトの名無しさん
垢版 |
2017/11/15(水) 09:59:57.09ID:LYmVSFgD
AppleはmacOSでもiOSでもAPIとして採用する気無はなくMetal以外眼中に無い感じやしね
最近Web標準のAPI草案にMetal特有の仕様を突っ込もうとしてMSとGoogleに反発されてなかったっけ
0734デフォルトの名無しさん
垢版 |
2017/11/15(水) 10:15:59.82ID:bUtgDTef
各プラットフォームが足並み揃えてくれないと、クロスプラットフォームが形骸化してしまうし使う意味もなくなるな
WebGLはどうなるんだろ
ライブラリの開発者は大変だな
0736デフォルトの名無しさん
垢版 |
2017/11/24(金) 22:02:38.11ID:Z1PbZD/w
glfwとglewで OpenGL 4.6 ターゲットにプログラムしています。

glslの "layout(binding = N)" が反映されず困っています。

glGet○○すると 0 が返って来ます。
どうやら宣言順にインデックスが付けられてるようで
glGet○○の値を使えば正常に動作します。

でも気持ち悪いです。
何で binding 指定が有効にならいのでしょうか?

初めはUniformBuffer使おうとして気づいたのですが、
ショートプログラムで確認した結果、
shaderStorage、sampler、image等も同じく反映されないようです。

環境はGeforce GTX760、ドライバVer388.13、VSコミュ2017使ってます。
0737デフォルトの名無しさん
垢版 |
2017/12/02(土) 08:41:04.82ID:JvMTpbwK
>>736
横からだが、シェーダ側で指定したバインド順番をCPUに強制させたいという話かと理解したが
それは後方互換性を維持するためではないかと
0738デフォルトの名無しさん
垢版 |
2017/12/02(土) 08:51:03.30ID:+JG4y+dR
DX9cから始めて11のあとにglに来たんだが
混乱と雑音をうむだけの後方互換性は、はよ切り捨てろとは思った。

glは統一規格を目指してない。
専用機での利用を大前提としたGPU規格のテンプレートみたいな印象がした。
0739デフォルトの名無しさん
垢版 |
2017/12/02(土) 09:46:27.85ID:PRegk6Y6
>>736
GLSL一行目の#version指定が正しくないとか?
layout指定は300以降だったかな?

OpenGL/GLESとGLSLのversion指定って混乱するよね……
0740デフォルトの名無しさん
垢版 |
2017/12/02(土) 11:04:39.79ID:Tv3BogrX
>>739
一行目必須、BOM禁止。コメント禁止だしね
それ以外もドライバ依存が激しい。
PS4やDSなんかのコンソールやiPhoneなら、それ以外がないから気にならないが
泥の現状はカオス、コキュートスモード
0741デフォルトの名無しさん
垢版 |
2017/12/02(土) 19:30:00.66ID:hb+Z3o85
腹が立ってきた。
glはハードウェア実装に特化して作る方ほことを考えてないんだな。
directXが至高と思えてきた。

せめてカレントあたりについては、リファレンスも目的語か「どこに」を書けよ。
0743736
垢版 |
2017/12/05(火) 23:38:56.73ID:WoyHGfNJ
自己解決しました。
glGet(Uniform/Resoruce)Indexが返す値が"layout(binding = N)"のNと思い込んでいました。

プログラムオブジェクトに入力するパラメータは必ずバインドしないといけないと思い込んでおりました。
layout(binding = N) と glBindBufferBase(GL_UNIFORM_BUFFER, N, ubo);
が対になっていてglUniformBlockBinding呼ぶ必要ないと。

酒飲んでプログラムすると駄目だなぁ。
0744デフォルトの名無しさん
垢版 |
2017/12/06(水) 10:27:02.53ID:ROyOilcp
単位ベクトル同士の外積は単位ベクトルになるのかと思ってたら違ったでござるよ orz
0748デフォルトの名無しさん
垢版 |
2017/12/06(水) 17:29:13.31ID:oBvdSzU/
平行六面体
0750デフォルトの名無しさん
垢版 |
2017/12/07(木) 01:14:22.26ID:fcKh4od9
#include <GLFW/glfw3.h>

int main() {
GLFWwindow *window;

if (!glfwInit())
return -1;

window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window) {
glfwTerminate();
return -1;
}

glfwMakeContextCurrent(window);

while (!glfwWindowShouldClose(window)) {
glClear(GL_COLOR_BUFFER_BIT);

glfwSwapBuffers(window);

glfwPollEvents();
}

glfwTerminate();
return 0;
}

$ g++ -L/usr/local/lib -lglfw -framework OpenGL main.cpp
$ ./a.out

キタ━━━━(゚∀゚)━━━━!!
0752デフォルトの名無しさん
垢版 |
2017/12/08(金) 14:28:44.62ID:6WtIjESa
栄養
0753デフォルトの名無しさん
垢版 |
2017/12/10(日) 22:04:09.61ID:Xd+spiQZ
ES3.2をJavaのみで書ききり、嫌になってバルカンに移行。
泥で触っているんだけど、かなりいいね。使いやすい。
ほとんどDX11と同じ感覚で使える。

バルカンは、普及する感じがした。
0754デフォルトの名無しさん
垢版 |
2017/12/14(木) 23:34:24.62ID:I1vhdCTR
泥バルカン。
スワップチェイン、フレームバッファとサーフェスをコアダンプなしで通せたが、
いまだに残るパイプラインとシェーダ。
またまだ続く簡易フレームワークを作る作業。

現在のコード量。6000行
0755デフォルトの名無しさん
垢版 |
2017/12/20(水) 07:30:14.77ID:gUtt4LOa
愚痴。バルカンネタ
ようやくディscripter、パイプラインあたりも実装が終わった。
今日あたりになんかのジオメトリを描画できそう。
残りは定数バッファへの値の流し込み。
0756デフォルトの名無しさん
垢版 |
2017/12/21(木) 07:14:53.51ID:wiUIS1bD
Vulkanでジオメトリの描画成功記念カキコ
あっけなく描画できた。
Windowsで作った描画フレームワークのジオメトリがあっさり描けた。
ようやくスタートライん。
0758デフォルトの名無しさん
垢版 |
2017/12/21(木) 15:10:44.36ID:X1S6oc7e
最近のバージョンのAndroidはVulkan対応してるらしいけど
使ってるゲームってあるの?
0759デフォルトの名無しさん
垢版 |
2017/12/21(木) 18:28:57.84ID:xctmZ09c
ないと思うよ。
2016年末に定まった規格だから対応機種は、その頃以降の機種になると思う。
というか、これからの規格ではないかと。
字形を描画する機能がない。
0760デフォルトの名無しさん
垢版 |
2017/12/21(木) 18:55:24.50ID:agTzrnuM
調べてきた。
APIレベル 23以降。泥6以降。
23以前もsoでどうこうは、恐らく、使えないことを確かめる手段の提供を以て対応の整理だろう。
泥6のシェアは、10%辺り。泥は4が今でも主軸のレガシィ
0761デフォルトの名無しさん
垢版 |
2017/12/21(木) 19:01:45.15ID:7LfvPQ5G
大事なことを書き忘れた。
スナップドラゴン、エクスペリアXZsでも
ジオメトリシェーダ ×

あとはわかるな
0763デフォルトの名無しさん
垢版 |
2017/12/22(金) 07:39:20.61ID:UDRrn+R8
カレント
0764デフォルトの名無しさん
垢版 |
2017/12/23(土) 18:14:10.02ID:hl+3r86b
Vulkanはドライバーが未成熟なせいで
OpenGL ES 3.1より遅いかもと
3DMarkのAndroid版のSling Shot Extremeの説明には書かれている
0768デフォルトの名無しさん
垢版 |
2017/12/24(日) 22:26:01.34ID:YQBy9q3A
>>767
は?個人ならGeForce使ったって何の問題も無いんだよ
馬鹿も休み休み言え
ちょっとGeForce集めただけでデータセンター気取りかよw
0769デフォルトの名無しさん
垢版 |
2017/12/25(月) 01:18:51.29ID:SIEbJbCX
貧乏人が深層学習やりたかったら、時間貸しのデータセンターしか満足できる速度で実行できないでしょ?
0770デフォルトの名無しさん
垢版 |
2017/12/25(月) 09:26:59.43ID:ipsYhAiN
深窓学習は、昔のホストコンピューティンぐへの回帰現象かな
とりま、そこらのDCよりも京の方が安くつく、とすら感じる。
できることも占い程度。
0771デフォルトの名無しさん
垢版 |
2017/12/25(月) 09:32:25.54ID:Hs3yDk/8
>>762
時代遅れすぎる情報が未だにごされと紹介されている。
もうGLとdxの違いは、深度区画だけなんだから
0773デフォルトの名無しさん
垢版 |
2017/12/25(月) 10:01:17.27ID:1YmR/zMV
ちなみにGeForceをデータセンター云々の記述はアメリカのサイトには書いてない
だから海外では(今のところ)合法
日本にNVIDIAを激怒させるようなよっぽどの乞食が居たんだろうな
さくらインターネットか?迷惑な話だ
0774デフォルトの名無しさん
垢版 |
2017/12/25(月) 10:06:39.74ID:XdRG80xO
その辺の事情がわからんのだが
具体的にさくらインターネットが何をしたん?
0778デフォルトの名無しさん
垢版 |
2017/12/25(月) 18:33:35.92ID:0U/3PXeD
ドライバに対するライセンス条項

No Datacenter Deployment.
データセンタに配布すんな

The SOFTWARE is not licensed for datacenter deployment,
繰り返すが、このソフトウェアは、データセンタへの配布をライセンスしてない、

except that blockchain processing in a datacenter is permitted.
しかし、データセンタにおけるブロックチェイン計算なら許してやるよ、こじきども(キャハ)


条項よりも、話題の論点がようわからん。
0779デフォルトの名無しさん
垢版 |
2017/12/25(月) 18:37:15.09ID:0U/3PXeD
ちな、ブロックチェイン計算とは履歴みたいな奴。
具体的な実装でいえば、イーサリアルだかピットコインなんかが、それだったと思う。


何にしろ、確かにテスラを買わせる為の制限条項との指摘は理解できる。
もっともな指摘だなー、と。
0780デフォルトの名無しさん
垢版 |
2017/12/25(月) 18:38:24.18ID:0U/3PXeD
しまった。
○配置
×配布
0781デフォルトの名無しさん
垢版 |
2017/12/28(木) 21:48:44.53ID:iWEL+baV
ジオメトリシェーダーって性能が出ないとかで
いらない子扱いされてるらしいけど
なんで?
0783デフォルトの名無しさん
垢版 |
2017/12/30(土) 13:37:43.10ID:GxGC3+RW
Mayaって昔はQuadroでしか動作保証してなかった気がするけど、仕事で使わせるものには高いやつを売り付けるというNVIDIAの昔からの常套手段だな
0784デフォルトの名無しさん
垢版 |
2018/01/19(金) 00:26:43.17ID:F0bS1On1
1dテクスチャの使い方のサンプルはどこかにありませぬかあ
カラーマップで使いたいんだけど探してもなかなかヒットしませぬ
何卒。。。
0785デフォルトの名無しさん
垢版 |
2018/01/19(金) 07:10:32.97ID:PphXjkGV
V 固定して 2D テクスチャとして扱えば。
0789デフォルトの名無しさん
垢版 |
2018/01/21(日) 21:54:51.75ID:ZYoNSckf
テクスチャを作るときのフラグが違うだけだと思う。
シェーダからはUだけ指定。

使ったことないけど。
法線マップのアルファにカラーマスクを仕込んで使った方が立体的に色を当てられるような。
実行時に色を交換したいなら定数バッファにいれた方が楽に思う。
0790デフォルトの名無しさん
垢版 |
2018/01/23(火) 10:28:53.67ID:7WiImxPC
法線マップを圧縮しないならね。
2D ゲーム作ってる可能性もかなりあると思うけど。
定数バッファがいいかどうかは、複数のシェーダで使うのかどうかかな。
0791デフォルトの名無しさん
垢版 |
2018/01/23(火) 12:55:06.79ID:hh5ZQXwd
いやいやカラーマップ(パレット)って普通テクスチャ毎に必要でしょ
またはオブジェクト毎とか
要するにユーザーが服の色を指定するとかすると必要になる
シェーダー毎とか関係無い
0792デフォルトの名無しさん
垢版 |
2018/01/23(火) 17:24:15.24ID:hbCDcD6q
グレースケールでデザインさせて、配色をそのつぎに決めるとかなら、あるような。
14なんかはそんな感じにみえる。
あれはユーザが基本色を選べる。
配色数が少ないなら、全通りをテクスチャでもつとかできるかもだが、配色数が多いと読み込みも地獄なら、VRAM要求も地獄になる。

だからパレットだけを一次元でもつのだろうが、配色選択のためならば、やっぱり一次元じゃなく、二次元で持ちたくなると思う。
横に配色、縦にバリエーション(ユーザが選択する軸)と配列して。
0793デフォルトの名無しさん
垢版 |
2018/01/25(木) 12:27:36.46ID:DEu5d/BX
0次元 テクスチャ使わないで単に色指定じゃ駄目なんかしら
1次元 線をテクスチャで使うってのは珍しいな
0798デフォルトの名無しさん
垢版 |
2018/02/28(水) 08:05:41.82ID:S4STWT1p
泥はとっくに対応済みなような。7以上だけど。
自分の端末で動かしたから間違いない。
0799デフォルトの名無しさん
垢版 |
2018/02/28(水) 08:24:30.73ID:vQgAlL9i
あんま大したネタじゃないが、D3D12とvulkanに特徴的なのは
・DescripterSet
・パイプラインハンドル
・テクスチャロード手続き
・コマンドリスト
かな
一つを使い回さず、目的別に個別に作れと言われている気がした。

D3D9、11、GL、GLESと使ってきたけど、バルカンは使いやすく、GPUを理解しやすい。
0800デフォルトの名無しさん
垢版 |
2018/02/28(水) 09:07:29.04ID:GfDfFRzS
ほぉ場合によってはMetalを他所のプラットホームに展開して世界征服なんてのも面白いと思うがそうきたか
0802デフォルトの名無しさん
垢版 |
2018/02/28(水) 17:01:08.92ID:yf3Ws+Qq
Appleは何もしてないぞ
単にMetalのラッパーだな
しかしOpenGL使うよりはCPU負荷は減ると書いてある
知りたいのは直接Metalを使った場合よりどれぐらいオーバーヘッドがあるかだけど分からん
0803デフォルトの名無しさん
垢版 |
2018/02/28(水) 19:03:29.85ID:k5A4r0wT
バルカンに字形描画はない。
そこをどう折り合うのだろう
0804デフォルトの名無しさん
垢版 |
2018/02/28(水) 23:40:51.15ID:05MN3oF7
Vulkanにフォント描画が無ければ実装しないだけじゃないか?
ゲームは普通APIに依存しない形でフォント描画を実装してると思うからそれほど重要ではない気がする
0806デフォルトの名無しさん
垢版 |
2018/03/02(金) 10:23:15.64ID:zvF9L+3q
Vulkanを使ってみたいけど、Amazonで本を探しても英語の本しか出てこないし、その英語の本もレビューを見ると今一だし、どうしたもんか...
0808デフォルトの名無しさん
垢版 |
2018/03/02(金) 11:44:43.29ID:LOSGTajv
Vulkanは公式のC++ラッパーが有るのが助かる
これから日本語の書籍を書こうと思っている人は絶対C++11前提で書いてほしい
こんなとこで言っても無駄だろうが…
0810デフォルトの名無しさん
垢版 |
2018/03/02(金) 17:59:08.02ID:i5jabcob
でもバルカン理解するには、GPUのアーキテクチャというか、描画パイプラインの知識が大前提な気がする。
簡単なフレームワークを書いたが、理解しにくいのは、
シェーダにポインタを与えるDscripterset
テクスチャロード
まんまパイプラインと名づけられたパイプラインハンドル周辺

テクスチャなんかは、何故、一度ステージにいれてからコマンド投げて転送するのか?
フォーマットをレイアウトする為だが、他のAPIだと透過的にできたことをやらされるので、ディスに使われると思う。
0811デフォルトの名無しさん
垢版 |
2018/03/02(金) 21:38:15.71ID:0VS8eezM
>>810
まあ、そのへんは慣れなんじゃないか?
OpenGL3.0系に初めて触ったとき、「これ使うのにソフトウェアでレンダリングエンジン書ける知識が必要じゃねえか」と衝撃を覚えたし
■ このスレッドは過去ログ倉庫に格納されています

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