OpenGL/Vulkanスレ Part23

0001デフォルトの名無しさん2023/02/18(土) 12:21:31.33ID:om/XupNP
クロスプラットフォームの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/Vulkanスレ Part22
https://mevius.5ch.net/test/read.cgi/tech/1440666771/
== 関連スレ ==
【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デフォルトの名無しさん2023/02/18(土) 12:25:52.23ID:om/XupNP
OpenGLについて質問したかったのですがスレが無かったので立てました。

0003デフォルトの名無しさん2023/02/18(土) 12:30:36.60ID:om/XupNP
早速質問ですが、
OpenGLを使いたいのですが、お勧めの書籍はありますでしょうか。

やりたいことは、C++から出力した3Dデータ(頂点座標と色情報)を表示することです。
GUIと3D表示は同じウィンドウ上に配置したいと思っています。
マウスで回転や拡大縮小、指定したオブジェクトを半透明化などの機能も必要です。
例えばですが、↓のサイトのような表示です。
https://3d-cad.tokyo/strength

プラットフォームはWindowsです。

0004デフォルトの名無しさん2023/02/18(土) 13:49:17.74ID:GO11aJAz
おー痛、おー痛、大分県

0005あぼーんNGNG
あぼーん

0006デフォルトの名無しさん2023/02/18(土) 13:53:03.50ID:lzmAcqsF
すみません、誤爆しました

000732023/02/21(火) 23:42:21.62ID:XNzGW/OP
今からOpenGLを始めるなら、GLFWを使うのが良さそうだと思っています。
GLFWで3D表示と同一ウィンドウに、Windowsの標準コントロール(ボタンやテキストボックス)を
表示することは可能ですか?

0008デフォルトの名無しさん2023/02/23(木) 10:09:06.06ID:pyFR4dnJ
>>7
>>3
GLFWも古いからお薦めはしないが
標準とはちょっと違うが
そういう用途なら
wxWidgetsとwxGLが楽
wxGLでもGLFW使えたと思う

000932023/02/23(木) 12:22:14.64ID:4nvSVdtR
>>8
返信ありがとうございます。
GLFWは、2022年7月が最新版で、
バージョン3.4が開発中みたいですが、古いのですか?

日本語の書籍がほしかったのですが、
一応英語のGLFWの書籍が売っていたのでこれを買ってやってみようと考えています。
https://www.perlego.com/book/800672/learn-opengl-beginners-guide-to-3d-rendering-and-game-development-with-opengl-and-c-pdf

wxWidgetsは調べてみたのですが、3Dというより、
マルチプラットフォームで2Dグラフィックを扱うのがメインの目的みたいな気がしています。

マルチプラットフォームは考えていないので、GUIはWindows APIの
CreateWindow関数で配置できれば良いと考えていました。
GUIの作成は、専用エディタを使う人が多いみたいですが、
自分は、普段、手入力でCreateWindowに座標を指定して行っていました。
DirectX 9で2Dポリゴン表示+CreateWindowでGUI表示はやったことがあります。

0010デフォルトの名無しさん2023/02/23(木) 14:26:33.52ID:x4AhNJS2
wxGLCanvas

0011デフォルトの名無しさん2023/03/01(水) 10:26:05.67ID:BrtIIoCo
初心者なのですがモデリングツールみたいにポリゴンの頂点を選択して移動するみたいな処理にOpenGLとかVulkanとかって関係ありますか?
OpenGLもVulkanもDXも外部からのモデルを表示するとかチュートリアルでかなり見ますが頂点をクリックして移動するみたいな例がないように思いまして…

0012デフォルトの名無しさん2023/03/01(水) 12:36:47.99ID:0ZE9lkr8
OpenGLやVulkanは描画するだけだからね。モデルの頂点の編集とかは普通のGUIの知識との組み合わせ。

0013デフォルトの名無しさん2023/03/03(金) 17:51:47.06ID:XERR83gA
>>12
なるほどサンキューです
なんかそういうサンプルコード乗ってるサイトや教本なんかご存知でしょうか?

0014デフォルトの名無しさん2023/03/13(月) 22:48:54.34ID:s/J/3cYR
失礼を承知でお伺いします

WinUI3やWPFにOpenGLのビューを埋め込んだユーザーコントロールを作りたいのですがやり方が全くわかりません
https://github.com/dotnet/Silk.NET/discussions/1330
OpenGLContextやGetProcAdress関数が理解できれば簡単と言われたのですが…
サンプルが無いのでどう使えばいいのかさえわかりません…

0015デフォルトの名無しさん2023/03/14(火) 11:34:48.18ID:VNqhYyU8
>>14
>OpenGLContextやGetProcAdress関数が理解できれば簡単

理解しろ

0016デフォルトの名無しさん2023/03/14(火) 13:13:41.06ID:ZglUMoKm
このスレ立てたのも質問してるのも MAUI H S かω

0017デフォルトの名無しさん2023/03/14(火) 16:03:34.39ID:LwnHya7T
>>15
理解したらわかりますか?
ちなみに理解できません

0018デフォルトの名無しさん2023/03/14(火) 16:47:53.91ID:AgG33ThB

0019デフォルトの名無しさん2023/03/17(金) 16:43:59.31ID:vdquZbLB

0020デフォルトの名無しさん2023/03/17(金) 20:21:39.44ID:lAarV3Xf

0021デフォルトの名無しさん2023/03/23(木) 15:58:37.03ID:4E7FceMl

0022デフォルトの名無しさん2023/10/29(日) 18:36:48.91ID:FMnDt1zy
GL_LINE_STRIP を複数回実行して線を描画していて遅いのですが、
GL_LINE_STRIP 複数回分を1回の描画命令で実行するようなことはできませんか

0023デフォルトの名無しさん2023/11/04(土) 01:46:01.86ID:Mw3nTgjl
>>22
glPrimitiveRestartIndex

0024デフォルトの名無しさん2023/11/04(土) 09:40:15.77ID:W6s01cfq
OpenGL4ですかね。1.0で何とかなりませんか

0025デフォルトの名無しさん2023/11/04(土) 14:01:55.75ID:Mw3nTgjl
OpenGL3だったと思う。
OpenGL1.0に効率的に命令を実行する機能はあまり無かった気がする。
display listぐらいはあったかも。
てか何でOpenGL1.0限定なの?
OpenGL3がでてからもう十年以上経ってるし。

0026デフォルトの名無しさん2023/11/04(土) 16:30:26.54ID:W6s01cfq
最近勉強し出して0からOpenGLを生で触ってスマホアプリ作ってます
シェーダー難しいです
とりあえず、GL_LINE_STRIPを諦めてGL_LINESでやるしか手がなさそうです。与える座標の数は倍になりますが。。

0027デフォルトの名無しさん2023/11/05(日) 20:44:07.28ID:Uo8YWfNA
GL_LINESで描画すると線と線の間が空いてギザギザになったり
太さが一定でなかったりしているんですがどうしたらいいですか
GL_LINE_SMOOTHとかは一通り設定してます
OPENGLのバージョンを上げると良い感じになるのでしょうか

0028デフォルトの名無しさん2023/11/05(日) 21:02:01.53ID:zFmEtYx3
>>27
OpenGL1.0だとシェーダが動かないしスマホで対応している機種もあんまりないだろ。
推測だがOpenGLとOpenGL ESっていう異なる規格を勘違いしてそう。

ラインがギザギザなのはピクセルという格子状のものに単色で線を描こうとしているから。
滑らかに描画する方法はMSAAとかいろいろあるが"opengl antialiassing multisampling"で検索してよさそうな方法を使えばいいと思うよ。

0029デフォルトの名無しさん2023/11/05(日) 21:30:40.57ID:Uo8YWfNA
すいません。OpenGL ES 1.0 でした。antialiasing調べてみます

0030デフォルトの名無しさん2023/11/05(日) 21:46:28.98ID:Uo8YWfNA
1.0じゃ無理ぽかな

0031デフォルトの名無しさん2023/11/07(火) 19:29:21.06ID:scwXZtsG
OpenGL ES1.0と2.0を混在させることはできますか
例えば画像は1.0で描画してLINEは2.0で描画する
それができれば段階的に移行ができるので助かります

0032デフォルトの名無しさん2023/11/07(火) 19:49:22.22ID:c+I8Vc1Y
OpenGL ES 2.0の中に1.0のAPIも含まれているんじゃないの?

0033デフォルトの名無しさん2023/11/12(日) 22:30:12.64ID:R71xf5Qj
画像の描画が遅いのですが画像一枚につき glDrawArrays するのではなくて複数画像を一度の描画命令で描画することは出来ますか

0034デフォルトの名無しさん2023/11/12(日) 23:31:10.64ID:IUEeiAD3
無理
テクスチャアトラスでクグレ
っていうかドローコールを何回してんの?
GLESのドローコールはそんなに重くないから、余程の回数じゃないと重いとは感じないぞ

0035デフォルトの名無しさん2023/11/13(月) 00:12:45.73ID:fjyKSj2j
一枚の大きな画像に全部の画像を詰め込んで切り出して使う感じですね
ただ、作ろうとしているものがアプリ起動後に動的に画像を取得してきて描画する感じなのでちょっと使いにくいかもですね
100個くらい同時に描画する感じですね

0036デフォルトの名無しさん2023/11/13(月) 00:38:00.55ID:DLJWBF+P
precision highp float;
と書くと精度が上がるようなのですが
glUniform1f()する時にtoFloat()してから渡すので結局意味無い気がするのですが
doubleは渡せませんか

0037デフォルトの名無しさん2023/11/13(月) 01:07:41.14ID:ahNJ1EOU
>>35
ロード時にテクスチャアトラスを作るしかないな
それかちょっとずつ画像を表示していくしかないな
ちょっとずつ表示されるのとか見たことあるだろう
そんな感じだ

0038デフォルトの名無しさん2023/11/13(月) 02:42:14.40ID:DLJWBF+P
一旦画像を描画した後、再描画することなくドラッグで表示位置を移動させることって可能ですか

0039デフォルトの名無しさん2023/11/15(水) 22:50:52.71ID:eKHDpGEh
ETC1ってどうなんだろう

0040デフォルトの名無しさん2023/11/16(木) 19:46:17.50ID:zXsdh4iP
テクスチャユニット

0041デフォルトの名無しさん2023/11/18(土) 18:18:06.88ID:c9hxBdjf
ETC1が良さそうなのですが実行時にプログラムでpngから変換することはできますかAndroidです

0042デフォルトの名無しさん2023/12/22(金) 14:08:48.66ID:UdPzx7/b
AndroidのOpenGL ES2.0でGL_LINE_STRIPで線を引くと斜めの時だけ線が細くなっている気がします。どうしたらいいですか

新着レスの表示
レスを投稿する