X



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

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

プラットフォームはWindowsです。
00073
垢版 |
2023/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使えたと思う
00093
垢版 |
2023/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表示はやったことがあります。
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関数が理解できれば簡単

理解しろ
0017デフォルトの名無しさん
垢版 |
2023/03/14(火) 16:03:34.39ID:LwnHya7T
>>15
理解したらわかりますか?
ちなみに理解できません
0022デフォルトの名無しさん
垢版 |
2023/10/29(日) 18:36:48.91ID:FMnDt1zy
GL_LINE_STRIP を複数回実行して線を描画していて遅いのですが、
GL_LINE_STRIP 複数回分を1回の描画命令で実行するようなことはできませんか
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"で検索してよさそうな方法を使えばいいと思うよ。
0031デフォルトの名無しさん
垢版 |
2023/11/07(火) 19:29:21.06ID:scwXZtsG
OpenGL ES1.0と2.0を混在させることはできますか
例えば画像は1.0で描画してLINEは2.0で描画する
それができれば段階的に移行ができるので助かります
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
一旦画像を描画した後、再描画することなくドラッグで表示位置を移動させることって可能ですか
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で線を引くと斜めの時だけ線が細くなっている気がします。どうしたらいいですか
レスを投稿する


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