X



OpenGL 2.0 専用スレ
0573デフォルトの名無しさん
垢版 |
2007/08/09(木) 00:20:52
>>572
手元の英英辞典では1番目の語義に
mend or correct something: to repair, mend, or correct something
って出てきたんですけど・・・
0574デフォルトの名無しさん
垢版 |
2007/08/09(木) 00:32:14
>>573
572が言いたかったのは、「コンピュータ分野の一部分」じゃなくて
「コンピュータ分野では一部分」って意味なんじゃなかろうか

でも個人的な感覚では、「修正」の意味の方が頻度高い気もするけど

ていうか fixed point くらい(この分野の)常識として訳して欲しいよね
floating point は一体どう訳したんだろう?
0577デフォルトの名無しさん
垢版 |
2007/08/09(木) 17:09:31
> Fixed point を
> 修正された点
ワラタ
そんなの、海外サイトをふだんから見ない俺でもわかるのにw
0578デフォルトの名無しさん
垢版 |
2007/08/10(金) 23:29:32

本田大地
0581デフォルトの名無しさん
垢版 |
2007/09/19(水) 06:09:37
とりあえず、救済AGEEE
0582デフォルトの名無しさん
垢版 |
2007/10/21(日) 10:42:24
RapidMind やってみた、
GPGPUやるんだったら
Cg GLSLよりかなり組みやすいけど
速度的にどうなのかはまだ分からん

やってる人いる?
0586デフォルトの名無しさん
垢版 |
2007/10/24(水) 01:04:22
当方Cgでシェーダーを組んでいるのですが、まだ手をつけたばかりで
シェーダーの初歩的なことを伺いたくて…他スレがあまりに過疎っているので
こちらで質問させてください。答えて頂けたら本当に助かります。

TEXCOORDについてなのですが
テクスチャ座標を指す、というのはわかったのですが
テクスチャ0や2などの番号がついたときにどこを指すのかわからなくて

float4 uv0 : TEXCOORD0;
float4 uv1 : TEXCOORD1;
float4 uv2 : TEXCOORD2

uniform sampler3D data // volume
uniform sampler2D back_buffer, // backface
uniform sampler1D TransferFunction, // transferfunc

この場合uv0〜uv2はどのsamplerを参照するのでしょうか?
Cgチュートリアルを見ていて、明示的にどれとどれが対応するのか、などが描いていなくて…

よろしくお願いします。
0587デフォルトの名無しさん
垢版 |
2007/10/24(水) 01:19:24
どれとどれを対応させてもいいし、テクスチャなんか参照せずに他の用途に使ってもいい
組み合わせは自由
すべては作るシェーダ次第
0588デフォルトの名無しさん
垢版 |
2007/10/24(水) 01:22:43
すみません、もう少しわかりやすくお願いします…
対応させてもいい、とありますがどのように対応させるのでしょうか
0589デフォルトの名無しさん
垢版 |
2007/10/24(水) 01:31:56
たとえば上記のように宣言して

float2 texc = ((uv2.xy / uv2.w) + 1) / 2;
とした場合、このtexcに何が入っているのかわからなくなってしまって。

言い忘れていましたがこれはフラグメントシェーダーで
vertexシェーダーの方では
float4 position : POSITION;
float4 color : COLOR;
float4 texCoord : TEXCOORD0;
をアウトプットしています。
0590デフォルトの名無しさん
垢版 |
2007/10/24(水) 01:47:49
それは単に
((uv2.xy / uv2.w) + 1) / 2
の計算結果が入ってるだけで、どのテクスチャも読んでない

Cgあんまり詳しくないけどサンプル眺めてみた限り、テクスチャを読み込んでる部分では tex2D とかの関数を呼んでると思う
0591デフォルトの名無しさん
垢版 |
2007/10/24(水) 02:11:07
元にしたソースを見ていましたら
vertexシェーダー から fragmentシェーダーへ値を>>589の値を送っているというのがわかりました。
float2 texc = ((uv2.xy / uv2.w) + 1) / 2; には vertexから送られてきたuv2の2Dテクスチャ座標が入っていました。

確認なのですが、vertexで抜けてきたものをフラグメントでは扱う、ということですよね。
なんとかまとまってきました。

ただ、それでもvertexシェーダーで、uniformもしていないのにtexcoord0とかが呼ばれたときに
それが何を指しているのかがわからない…

すみません…混乱しすぎて。睡魔も着てしまってわけがわからなくなっています。

セマンテックが何を表しているのか、図で説明してくれてるものがあればいいのですが。
OSITIONもCOLORも、画面の何を指しているのかわからないままサンプルいじくってるので…
0592デフォルトの名無しさん
垢版 |
2007/10/24(水) 11:22:07
CgUsersManualちゃんと読めば書いてある
プロファイルにもよるが、OpenGLならarbvp1/arbfp1かvp40/fp40辺りだろうから
Appendix B Language Profilesのarbvp1とarbfp1のBindingsの項を読んでみ
0593デフォルトの名無しさん
垢版 |
2007/10/27(土) 03:43:29
openglの疑問はwww.opengl.orgに行ってspecification等をちゃんと読めばほとんど解決するだろう。
まずはレンダリングパイプラインを理解することが大切だと思うよ。
0594健介
垢版 |
2007/12/25(火) 00:24:22
掃除機セマンテック
0595デフォルトの名無しさん
垢版 |
2008/01/26(土) 04:19:35
cg のループ回数(もしくは行数)についてなのですが。
fragment shader (CG_PROFILE_ARBFP1): GeForce7900GS で

void main(out float4 color : COLOR){
float i;
float4 totalCol = 0;

for(i = 0; i < 200; i++){
totalCol += 0.001;
}
color = totalCol;
}

だとちゃんと動くのですが、ループの回数を200から300に増やすと、
CG_COMPILER_ERROR
になるのです。なにか制限とかってあるのでしょうか?
0596デフォルトの名無しさん
垢版 |
2008/01/26(土) 04:21:29
タブが消えてしまった orz

void main(out float4 color : COLOR){
float i;
float4 totalCol = 0;

for(i = 0; i < 200; i++){
totalCol += 0.001;
}
color = totalCol;
}

こうです。
0599デフォルトの名無しさん
垢版 |
2008/01/26(土) 09:11:08
ARBFP1というかARBFragmentProgramは動的ループをサポートしてないから
コンパイル時にループを全部展開されて命令数が足りなくなる

よって動的ループをサポートしてる他のプロファイルを使いましょう
0600595
垢版 |
2008/01/26(土) 15:54:22
ありがとうございます。
やっぱり制限数があるのですね。
他のプロファイルを試してみます。
0602デフォルトの名無しさん
垢版 |
2008/01/26(土) 18:22:17
nvidiaのfragment_programっておかしくね??

これだと、なんか固定機能しか使えないように見えるが
実際PS2.0できるじゃん。
fragment_program2だとPS3.0だし


ここは全員でおかしいと主張すべきだ。
0603デフォルトの名無しさん
垢版 |
2008/01/26(土) 18:35:39
何がおかしいんだか分からんが、それならば
NV_geometry_program4とかNV_fragment_program4とかNV_vertex_program4を
使えばSM4.0相当になるうえにWindowsXPでも動いてしまう
この方がおかしいと思わないか?
0604デフォルトの名無しさん
垢版 |
2008/01/26(土) 18:44:59
もっと分かりやすくすべきだ。

固定機能しか使えないのならば、fragment_program_kotei_fanction

とか、すべきだ。

PS2.0なら、fragment_program2
PS3.0なら、fragment_program3

とわかりやすくすべきなのだ。

だから、ARB_fragment_programがPS1.1までとかいう、変な大間違いが出てくるのだ。
0606595
垢版 |
2008/01/26(土) 21:12:47
Cg 2.0 をインストールし(1.1だった)、CG_PROFILE_FP40 プロファイルを使用したら
動的ループができるようになりました。
ちなみに、CG_PROFILE_FP30では、動的ループは無理でした。
ただ、別の問題が出てきました。

void main(uniform float size, out float4 color : COLOR){
float i;
float4 totalCol = 0;

for(i = 0; i < size; i++){
totalCol += 1;
}

color = totalCol / size;
}

だと、sizeをいくつにしても、色が白になるはずなのですが、
size 250以上になるとだんだん色が薄くなっていきます。ループの中が
250までしか展開できてないようです。
0607595
垢版 |
2008/01/26(土) 21:18:47
続き
で、以下のようにループ部分を分割し、試しにsize=400にして実行したら、

void main(uniform float size, out float4 color : COLOR){
float i;
float4 totalCol = 0;

for(i = 0; i < size - 200; i++){
totalCol += 1;
}

for(i = 200; i < size; i++){
totalCol += 1;
}
color = totalCol / size;
}

見事に白色になりました。
GeForce8800 だったら、こういうでかいループも処理できるんでしょうか?
0609デフォルトの名無しさん
垢版 |
2008/01/27(日) 14:36:30
正直MAXまでの何かってのはやってはいけないことだな

例えば命令スロットが512なら、
512を目一杯使わねばならない状態になるのはいかんこと。
0610デフォルトの名無しさん
垢版 |
2008/01/27(日) 16:20:13
リアルタイムレンダリングみたいな用途じゃ無いならいいんじゃない

むしろGPGPUやオフラインレンダリングとかなら出来るだけ詰め込んで
GPUに処理を肩代わりさせたいんじゃないのかな
0611595
垢版 |
2008/01/27(日) 20:05:20
256まででしたか。
とりあえず分割ループでごまかすことにしました。
8800欲しい・・・
ちなみに、GPGPUなプログラムです。
0612デフォルトの名無しさん
垢版 |
2008/02/04(月) 13:04:10
main(out float4 color){
TexColor = tex2D(tex, texcoord);// テクスチャの色
PolColor = Lighting();// ポリゴンの色

color = TexColor * PolColor;
}

Cgのフラグメントシェーダの色々省略したコードなのですが、テクスチャをマッピングしないポリゴンがある場合、
colorが変な色になります。ポリゴン毎にテクスチャの存在の可否を指定する変数を渡して
if(texExist)
color = TexColor * PolColor;
else
color = PolColor;
とすれば意図通りの動作はするのですが、このような処理にするしかないのでしょうか?
0613デフォルトの名無しさん
垢版 |
2008/02/05(火) 00:55:33
テクスチャ設定してないのにテクスチャ読めと命令してるんだから変な色になるのは当然だろ
テクスチャ無い時はサンプリングしないって分岐はごく自然な処理だと思うが
他にどうなって欲しいてっんだ?
0617デフォルトの名無しさん
垢版 |
2008/02/05(火) 23:11:26
>シェーダ2種類作ったらいいんじゃない?
2種類をCgランタイムでどう呼び出すのかわからない
0619612
垢版 |
2008/02/06(水) 01:52:25
>>615
>>618
今は
cgGLBindProgram(); sceneGraph->DrawAll(); cgGLBindProgram(NULL);
こんな感じで全部のオブジェクトを一気に描画してるので,
シェーダ2種類作ってポリゴン毎にバインドするシェーダを切り替えるのは
遅くなっちゃうのかなと思って他にいい方法がないか考えてました。
頭で考えてただけで実際遅くなるかとかの検証はしてなかったのでやってみます。

書いてて思ったんですけど同じマテリアル(テクスチャ)を使う
ポリゴンをグルーピングしていればシェーダ切り替える方法は
使いやすそうですね。

どっちのやり方も参考になりました、ありがとうございます。
0622デフォルトの名無しさん
垢版 |
2008/07/19(土) 13:22:03
コンパイルすると

Error: 'C:\A\TOOLS\BCC\LIB\GLU32.LIB' contains invalid OMF record, type 0x21 (po
ssibly COFF)

と出ます

IMPLIB glut32.lib glut32.dll

をして、glut32.libを上書きしてるんですがダメです
0626デフォルトの名無しさん
垢版 |
2008/08/06(水) 22:57:14
Khronos BOFs
* OpenGL 3.0 Specification Overview
* OpenGL hardware and driver plans - AMD, Intel, NVIDIA
* Developer's perspective on OpenGL 3.0
* The new Khronos OpenCL Working Group and how that affects OpenGL
* and more...

AMDもいつまでも黙ってはいないぞ
どちらかと言えば微妙な拡張よりこっちの方が期待したいし
できればIntelもな…
0627デフォルトの名無しさん
垢版 |
2008/08/06(水) 23:30:50
AMDはさっさと拡張の仕様を公開しろ。
ドキュメントがない拡張が何個溜まってると思ってるんだ。
0628デフォルトの名無しさん
垢版 |
2008/08/12(火) 10:25:36
OpenGL3.0情報

ttp://www.opengl.org/news/permalink/the_khronos_group_announced_today_it_has_released_the_opengl_30_specificati/
ttp://www.khronos.org/news/press/releases/khronos_releases_opengl_30_specifications_to_support_latest_generations_of/
0630デフォルトの名無しさん
垢版 |
2008/08/12(火) 12:40:54
せめて3.0で削除された仕様は書かないでおいてくれると読み易かったんだがな
あとせめてテクスチャ回りを整理してほしかった
0635デフォルトの名無しさん
垢版 |
2008/11/30(日) 19:03:58
OpenGLnのmain関数をスレッドで呼び出して使おうと思っているのだが、display()関数のオブジェクトカラーを引数で渡した値で更新したいんだ。
マルチスレッドで値を渡すことはできるのだが、OpenGL側でどうやって、display()関数に値を綿したらいいのかわらかない。

つまり、
プログラム1 --> OpenGLプログラム(スレッドで生成)
  ▼       ▼
 値の更新     色変更
  ▼       ▼
 値の更新     色変更
  …       …
ってことをしたいんだ。
0637デフォルトの名無しさん
垢版 |
2008/12/21(日) 12:01:23
glRotatef(90,1,0,0);
glutSolidCube(1.0);
このあとに
glTranslatefかglrotatefを適当にいれて
glSolidSphere(1.0,10,10);
より立方体の回転起動に垂直の起動で球が回転するようにするには
どうやればいいですか?
0639デフォルトの名無しさん
垢版 |
2008/12/21(日) 14:05:21
glRotatefとglTranslatefを組み合わせてx軸周りの回転移動をy軸周りの回転に
させることはできますか?

glPopMatrix()とglPushMatrix()を使わないで
0640デフォルトの名無しさん
垢版 |
2008/12/22(月) 01:17:00
GLSLで色を出力するとき、というか、OpenGLの質問なんですが、
OpenGLでは各色の値の範囲が0〜1ですが、これってGDI上での0〜255の範囲に
リニアに一致する訳じゃないのでしょうか?
256*256のコンテキストを作り、全面ぴったりのポリゴンを張って、フラグメントシェーダーから

  gl_FragColor = vec4(gl_TexCoord[0].s, gl_TexCoord[0].s, gl_TexCoord[0].s, gl_TexCoord[0].t);

として色とアルファの増え方を見てみたのですが、どうもジャギっててきれいに0〜255の範囲で
増えてるわけではないみたいなのですが…
コンテキストと同じサイズのGL_NEARESTなテクスチャを張った場合はちゃんと256*256の範囲
全体が張られているのでテクスチャ座標がずれてるわけでもないみたいです。
0641デフォルトの名無しさん
垢版 |
2008/12/22(月) 01:21:03
あだ、ここGL "2.0"スレだった orz
GLスレの方に行ってきます orz
スレ汚しすみませんでした…
0642デフォルトの名無しさん
垢版 |
2008/12/29(月) 03:29:54
DirectX ばっかりで OpenGL なんて一生触ることは無いと思ってたが
Linux絡みでJOGLで開発することになった
調べてみたら、OpenGL も色々面白そうだな
0643デフォルトの名無しさん
垢版 |
2008/12/29(月) 04:52:15
名前が違うだけで、実行するハードウェアの中身に対するフォーマットは一緒だからな。
0644デフォルトの名無しさん
垢版 |
2009/02/15(日) 18:51:58
保守
0645デフォルトの名無しさん
垢版 |
2009/04/28(火) 09:13:36
OpenGL Vertex Buffer Objectについての質問があります。

glBufferData()で,頂点データをグラフィックボードのメモリに転送(確保?)した後,
プログラム側の頂点データが更新されたとします。
この更新された頂点データを,グラフィックボードのメモリに転送するわけですが,どのようにすればよいのでしょうか?
いったんglDeleteBuffer()でバッファを消して,新たにバッファを作成し,glBufferData()で転送しなおすのでしょうか?
それとも,既に確保されている領域に上書きするような方法があるのでしょうか?
0646デフォルトの名無しさん
垢版 |
2009/04/28(火) 22:43:29
・glBufferDataでもう一回転送する
・glMapBufferでDMA転送する
・glMapBufferRangeで更新が必要な部分だけDMA転送する
・いっそデータの更新をCPU側でなくTransform Feedbackを使ってGPU側で行う
0647デフォルトの名無しさん
垢版 |
2009/04/29(水) 00:17:46
glTexSubImage()でテクスチャの一部を書き換えられるのと同じように、
VBOにも glBufferSubData() があるよ。
0648デフォルトの名無しさん
垢版 |
2009/04/29(水) 00:30:30
書き忘れ。
Buffer全体を書き換えたい、あるいはBufferのサイズを変えたいなら、
わざわざDeleteしなくても、普通に glBufferData() で上書きしてやればいいよ。
これも考え方はテクスチャと同じ。サイズが変わるとパフォーマンスは落ちるでしょうね。
0649645
垢版 |
2009/04/29(水) 02:21:55
なるほど。色々な手段があるのですね。
ありがとうございました。
0650デフォルトの名無しさん
垢版 |
2009/06/06(土) 13:33:00
例えば、direct x使ったPCゲームで全画面表示に切り替わるけど、
openglでも同じことできる?
シミュレータが作りたいんだけど。
0653デフォルトの名無しさん
垢版 |
2009/06/18(木) 16:36:03
試しにZ軸によるs度の回転(右手座標系)を計算してみたら
sin(s)*y-2*(x/2-(cos(s)*x)/2)+x,-2*(y/2-(cos(s)*y)/2)+y-sin(s)*x
簡約すると
x' = sin(s)*y+cos(s)*x
y' = cos(s)*y-sin(s)*x
z' = z
となって普通の回転行列の計算と同じになた
普通に軸にそって回転するだけなら
通常の回転行列を使う方が良いのかな
0654デフォルトの名無しさん
垢版 |
2009/07/04(土) 17:45:21
軸まわりの回転ならsin、cosの手計算でもいいと思うが、任意の軸まわり回転をオイラー角でやるとジンバルロックっていう問題が出てくる。
あとクォータニオンを使う一番のメリットは2つの回転位置の補完を球面線形補完による演算で求められることじゃないかと思う。
0657デフォルトの名無しさん
垢版 |
2009/07/09(木) 22:53:34
VRMLは後継が出てたはずだよね、名前忘れたけど
まあ今更OpenGLとかDirect3Dとか言っても意味ないわな
中身ほとんどいっしょだし
0661デフォルトの名無しさん
垢版 |
2009/07/10(金) 04:28:00
流れとはまったく関係ないどころかスレとも関係ないが
PowerVRがなんだかんだでまた注目されつつあるな
0662デフォルトの名無しさん
垢版 |
2009/09/13(日) 18:42:10
その PowerVR について質問させて下さい。

iPhone3GS や iPod touch 3G で使われているらしい PowerVR SGX を内蔵し、
Vaio Type P や Dell Inspiron Mini 10/12 等のネットブックで採用されている
intel GMA500 ですが、

カタログスペック上は OpenGL2.0 対応を謳っているものの、Windows XP/Vista 上では
glGetString(GL_VENDER) が Microsoft、
glGetString(GL_RENDERER) が GDI Generic、
glGetString(GL_VERSION) が 1.1.0 を返してきます。

Intel で配布されている開発者向けの 2009/9/13 時点の最新ドライバを入れても同じです。
Vista 32bit 用: ttp://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17995&lang=jpn
XP 32bit用: ttp://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17992&lang=jpn

http://software.intel.com/en-us/blogs/2008/10/22/where-can-you-find-a-mid/
こちらの阿鼻叫喚スレのように、GMA500 での Windows 向けドライバによる
OpenGL2.0 サポートは「ない」と言うしかないのでしょうか…。
また、今後のサポート予定について事情をどなたかご存知でしたら教えて頂けると嬉しいです。
0663デフォルトの名無しさん
垢版 |
2009/09/13(日) 19:03:06
ちゃんとOpenGLのコンテキストを設定した後でglGetStringを実行してるんだろうな?
GDI Genericじゃ2.0以前にソフトウェアレンダリングだぞ。
0664デフォルトの名無しさん
垢版 |
2009/09/13(日) 20:14:58
>>663
はい、ChoosePixelFormat(), SetPixelFormat(), wglCreateContext(), wglMakeCurrent() が
成功したことを確認してから glGetString() を実行しています。
(しないと手元の環境では NULL が返ってきました)

ttp://udetaco.ddo.jp/OpenGL-desktop-overlay-test/
VisualStudio2005用プロジェクト一式とバイナリをこちらに置いてみましたので、
ご確認頂ければ幸いです。

testDesktopOverlay-20090913.7z を解凍した後、
testDesktopOverlay\application\RetrieveOpenGLInfo.cpp 内の
RetrieveOpenGLInfo::retrieve() をご覧下さい。
0667デフォルトの名無しさん
垢版 |
2009/09/13(日) 23:01:46
GMA500はタイミングによってはテクスチャのバインドに失敗する
(glBindTextureが正常に動かない)こともあったりして、最悪だよ。
OpenGL2.0サポート?無理無理。
あれはOpenGL1.1すらまともにサポートできてない。
0668デフォルトの名無しさん
垢版 |
2009/09/13(日) 23:17:09
ttp://www.gamedev.net/community/forums/topic.asp?topic_id=545140
こちらでも OpenGL 開発を期待して netbook を買った人が
ドライバの GL 未サポートに怒ってる模様…。

>>667
glGetString(GL_RENDERER) は GDI Generic よりマシな名前を返してきますか?
0670デフォルトの名無しさん
垢版 |
2009/12/24(木) 21:58:16
Mac OS Xでやってる方はいらっしゃいませんでしょうか?
テクスチャの扱いが違っていて困っています。
0671デフォルトの名無しさん
垢版 |
2009/12/24(木) 22:12:47
自己解決しました。
非2^nサイズのテクスチャの生成に
GL_TEXTURE_RECTANGLE_EXT
を使っていたのですが、これを使うとだめだったようです。
0672デフォルトの名無しさん
垢版 |
2009/12/25(金) 06:52:27
>>671
2.0以降なら2^nでなくても良かったような。
GL_TEXTURE_RECTANGLE_EXT はMIPMAP生成出来ないから
GL_TEXTURE_MIN_FILTER を GL_NEAREST にしないと駄目だったような。
0676デフォルトの名無しさん
垢版 |
2010/03/03(水) 01:26:49
>>675
考えて見れば、三角形一枚書くのにシェーダ書いてVBO作って…じゃ、
CG屋やゲーム屋以外の、「単に可視化プログラムを書きたい研究者や技術者」が
使わなくなってしまうからなあ。

自分もそのタイプのプログラマなんだが、OpenGLはそういう方面の需要がDirectXに比べて大きいと思う。
0677デフォルトの名無しさん
垢版 |
2010/03/04(木) 23:47:14
「単に可視化プログラムを書きたい研究者や技術者」
はopenGLを直接使わずにハイレベルなライブラリ(open scene graph等)を使えばええんでない?
Compatibility Profilesは古いコードを使うためとか
openglを勉強し直すのが面倒な人とかのためにあるんじゃないだろうか。
0678デフォルトの名無しさん
垢版 |
2010/03/05(金) 00:37:24
最近OpenSceneGraphさわり始めたけど、ホントGLUTとかで遊んでた全てが無駄に見えてきたよ。
0681デフォルトの名無しさん
垢版 |
2010/05/06(木) 14:31:11
OpenGLで図を作成して、latexの論文に導入したい者ですが、質問よろしいでしょうか?
GL2PSというものを用いて、epsで図を出力することには成功したのですが、
文字列も一緒に描画したいと思い、gl2psTextという関数をつかってみたところ、
フォントがしょぼくて、論文に用いるには抵抗があります。
Times New Roman で文字列を描画したいのですが、どなたか解決法をご存知ないでしょうか?
GL2PSがマイナーなのか、ぐぐっても中々情報が出てきません。
よろしくお願いします。
0682681
垢版 |
2010/05/06(木) 14:48:58
サーセン。自己解決しました
GLint gl2psText( const char *string, const char *fontname, GLint fontsize );
が宣言なので、
GLint gl2psText( "X", "Times-Roman", 24 );
みたいに使うみたいです。
0685デフォルトの名無しさん
垢版 |
2010/07/23(金) 05:40:39
Direct3DはWindows以外だと使えないからなあ
Windowsでしかプログラミングしないぜってなら別にいいんだが
0689デフォルトの名無しさん
垢版 |
2010/11/06(土) 23:56:54
すみません、OpenGL(GLSL)のシェーダプログラムの質問したいのですが、ここでしても良いですか?
0691デフォルトの名無しさん
垢版 |
2010/11/24(水) 15:46:52
objファイルを読み込んで使いたいのですが、
自分でライブラリ書くしかないのでしょうか・・?
0693デフォルトの名無しさん
垢版 |
2010/11/24(水) 23:44:43
objローダはもう3回くらい書いたなぁ・・・
パーサ部分はまぁ再利用できるとしても、読込先が変わると、ね。
0696デフォルトの名無しさん
垢版 |
2010/11/25(木) 01:01:16
俺はめんどくせぇと思ってモデルだけ
読み込んでほったらかしてるわ・・・。

そのあたりもきっちりしとかんとなぁ。
0697デフォルトの名無しさん
垢版 |
2010/11/25(木) 10:48:39
用途によっては放ったらかしでも良いと思うけど、
マテリアルもテクスチャも適用した方がモチベーション上がるよね。

ていうかmtlの読み込みよりテクスチャ画像の読み込みの方がメンドクサイ。
0698デフォルトの名無しさん
垢版 |
2011/03/28(月) 05:42:48.35
AMD(AMD RADEON HD6xx0/HD5xx0)
OpenGL4.1 DirectX11
NVIDIA(NVIDIA GeForce 5xx/4xx)
OpenGL4.1 DirectX11
S3(S3 Chrome 5400E)
OpenGL3.1 DirectX10.1
(intel HD graphics 3000/2000)
Intel OpenGL3.0 DirectX10.1
Matrox(Matrox M-Series)
OpenGL2.0 DirectX9c
3Dlabs(Wildcat Realizm)
OpenGL2.0 DirectX9
XGI(Volari XP10)
OpenGL1.5 DirectX9
0699デフォルトの名無しさん
垢版 |
2011/11/20(日) 11:23:05.48
え?
0700デフォルトの名無しさん
垢版 |
2011/11/23(水) 23:34:51.49
androidプログラムのスレで惨敗したので、こちらでも質問させて下さい

Android(OS 2.3)のjavaで直接OpenGL ES 2.0を使おうと思ってます。
しかし、javaではポインタと言う概念がないのでAPIの引数が微妙にAndroid専用になっています。
(配列の先頭アドレスが引数だと、javaのBufferObjectに変わってる等)

で、普通にC++/ARM/PowerVR SGX環境で動いていたコードの一部を移植したのですが
(2Dシェーダーで、頂点とカラーだけでポリゴン描画)
頂点とカラー情報のメモリをズレて使用されている感じです

で、答えは自分で解決したいのですが、参考になるサイトが全然見つかりません
Android Developers の公式でさえAIPの定義をただ羅列しているだけで
Androidがラッパーしている部分の解説がありません

英語でも良いので、javaでOpenGL ES 2.0(NDKでJNIを使わない)を説明してるサイトを知ってる方いませんか?
0701デフォルトの名無しさん
垢版 |
2011/11/23(水) 23:49:46.68
こっちはあまり活発じゃないのでこっちにいきな。

OpenGLスレ Part17
ttp://hibari.2ch.net/test/read.cgi/tech/1321350331/
0703702
垢版 |
2011/11/25(金) 05:15:59.76
ByteBufferで書くよりFloatBufferで書いた方が良かったか。

まあちょっとエスパーしてみると、頂点とカラーを同じ配列に入れてるなら、
Bufferのpositionを適切に設定してsliceしないとズレるかもね。
0704デフォルトの名無しさん
垢版 |
2012/08/24(金) 12:47:02.22
てst
0705デフォルトの名無しさん
垢版 |
2012/10/14(日) 13:48:52.67
y
0706デフォルトの名無しさん
垢版 |
2013/02/02(土) 17:56:57.09
あとはマイクロソフトがWebGLをサポートしてくれればな・・・
今までも、そしてこれからも、ブラウザシェアはIEがトップだろうし。
まあ、無理っぽいけどさ。
0707デフォルトの名無しさん
垢版 |
2013/02/02(土) 23:12:46.44
冒険しないからこその価値もあるんだよ
IEはただのブラウザじゃなくて膨大な業務クライアントを動かす超重要なプラットフォームなんだから
0709デフォルトの名無しさん
垢版 |
2013/02/21(木) 21:28:07.75
もうOpenGL 4まで出てるだろうにいつまで2.0スレなんだろうか。
次スレは3.0になるわけ?
0710デフォルトの名無しさん
垢版 |
2013/02/21(木) 21:33:21.54
2.0専用スレなんだから
3とか4とかは別途立てればいいんじゃね
需要があるかどうかは知らんがw
0711デフォルトの名無しさん
垢版 |
2013/03/26(火) 18:03:03.98
次スレ立つころには6とか7とかいってる予感
0713デフォルトの名無しさん
垢版 |
2013/11/21(木) 19:05:39.80
あげ
0715デフォルトの名無しさん
垢版 |
2014/02/24(月) 22:42:43.03
ほしゅ
0716デフォルトの名無しさん
垢版 |
2014/02/28(金) 22:09:05.28
なんで2.0専用にしたの?
0717デフォルトの名無しさん
垢版 |
2014/03/01(土) 21:54:07.67
>>1出てこいたて逃げか
0718デフォルトの名無しさん
垢版 |
2014/03/03(月) 07:04:55.70
今時2.0使ってる奴なんていねーだろ。
0719デフォルトの名無しさん
垢版 |
2014/03/03(月) 12:14:31.08
8年経ってもスレが生き延びスレタイ変更機能もつかないまま
などという簡単なことすら予想できない無能 それが >>1
0721デフォルトの名無しさん
垢版 |
2014/03/06(木) 10:04:05.78
DirectXがあればOpenGLは不要
0722デフォルトの名無しさん
垢版 |
2014/03/07(金) 10:28:20.99
流石に2005年から今まで続くとは予想外だったんだろうなぁ
逆にもっと前のGL1.1なら、WindowsSDK付属のだけでやり続けるスレになってたんだろうが…
0723デフォルトの名無しさん
垢版 |
2014/03/08(土) 10:56:24.96
ワラタ
0725デフォルトの名無しさん
垢版 |
2014/03/10(月) 17:34:11.82
ついでに>>724も不要
0728デフォルトの名無しさん
垢版 |
2014/05/15(木) 21:12:50.87ID:9HQ26ogB
NHK提携シークレットサロン

NHK提携シークレットサロン

NHK提携シークレットサロン
0729島本町で凄惨なイジメを受けて廃人になった方へ
垢版 |
2014/08/07(木) 20:02:42.22ID:L9M/hxnx
>大阪府三島郡島本町の小学校や中学校は、暴力イジメ学校や。
島本町の学校でいじめ・暴力・脅迫・恐喝などを受け続けて廃人になってしもうた僕が言うんやから、
まちがいないで。僕のほかにも、イジメが原因で精神病になったりひきこもりになったりした子が何人もおる。
教師も校長も、暴力やいじめがあっても見て見ぬフリ。イジメに加担する教師すらおった。
誰かがイジメを苦にして自殺しても、「本校にイジメはなかった」と言うて逃げるんやろうなあ。
島本町の学校の関係者は、僕を捜し出して口封じをするな

子供の時に受けた酷いイジメの体験は、一生癒えない深い傷になる
「暴力とイジメと口裏合わせと口封じ」の町やそういう町に巣食うヤクザ・チンピラ・ゴロツキ・不良・
いじめっ子・殺人鬼・ダニ・ノミ・シラミなどを監視して非難するのは暮らしやすい町を作るのに必要だ
0730デフォルトの名無しさん
垢版 |
2014/09/01(月) 22:38:15.18ID:pppp+tIw
うめるか
0733デフォルトの名無しさん
垢版 |
2015/08/26(水) 21:09:02.15ID:DFdWjgdU
OpenGL ES 3.0の一部機能をES2.0だけで再現する互換レイヤーってもう作られてない?
サンプラーオブジェクトとか、オーバーヘッドを気にしなければES2でも再現できそうではある。
Regalっていうライブラリがかつて開発されたいようだが、もう見捨てられていた
0737デフォルトの名無しさん
垢版 |
2016/03/29(火) 09:27:27.61ID:/c8bAcK4
サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート
0738デフォルトの名無しさん
垢版 |
2016/08/07(日) 17:04:42.65ID:fH23byCM
>>734
クソスレ
0739デフォルトの名無しさん
垢版 |
2016/08/23(火) 14:35:51.99ID:TwUwfpUe
1ループ処理で、
1枚のテクスチャ画像の部分描画を繰り返す場合、
テクスチャのbindは最初の1回だけで大丈夫ですか?
0740デフォルトの名無しさん
垢版 |
2016/09/20(火) 09:49:51.50ID:wGubmxjY
OpenGL 2.0 と OpenGL ES 2.0 って同じような内容ってことでいいの?
ESはモバイル用に省略されてるのは知ってる

OpenGL 3.0が ES3.0と同じような内容?
0741デフォルトの名無しさん
垢版 |
2016/09/20(火) 19:41:16.83ID:Uwl2BG+v
OpenGL ES 2.0はサブセットだったと思うがその後の進化は独自で番号は合ってない。
OpenGL 4.xのサブセットがOpenGL ES 3.yな感じ。
そもそもOpenGL ES 3.0のリリースはOpenGL4.0よりも後で4.3あたりだったからな。
0743デフォルトの名無しさん
垢版 |
2017/02/22(水) 15:02:21.94ID:7wbX+Yzj
わたくしいまだにOPENGL1.0を利用しております。
そこで質問があります。
OPENGE2.0にしたら何かいいことがあるのでしょうか?
スピードが超高速になるとか?
違いのわかるかたいらっしゃいますでしょうか?
あまり違いがないのならOPENGL1.0のままでいたいのです。
面倒くさいので。
ちなみにわたくしいかくさいでございます。
0746デフォルトの名無しさん
垢版 |
2017/02/23(木) 23:39:27.95ID:jHHvEnTV
ググっても速度は出てませんでございました。
もっとも実際に組んでみて速度を試してみればいいだけの話なんですけどね。
面倒くさいので。
ちなみにわたくしいかくさいでございます。
0747デフォルトの名無しさん
垢版 |
2017/02/24(金) 06:13:05.89ID:ywjaqOJh
速度じゃなくて3D表現が向上するし便利なAPI使えば同じ表現もより速く処理できる
0750デフォルトの名無しさん
垢版 |
2017/11/09(木) 19:35:34.24ID:SIlYiBv4
>>677
それなりの速度でヒートマップを描きたいって感じでOpenGLを触り始めたけど
かなり苦戦しているので他にもっと良い方法があったんじゃないかって少し思う
0751デフォルトの名無しさん
垢版 |
2017/11/12(日) 18:23:05.25ID:C1sLEmf0
win32でopenGLを使って2Dゲーム作りたいんだけど0からコード打ちこまないとダメ?
0752デフォルトの名無しさん
垢版 |
2017/11/14(火) 19:51:43.21ID:rcEwUB0d
そうしたければそうしよう
0754デフォルトの名無しさん
垢版 |
2017/11/15(水) 21:00:03.65ID:aTcF7ra9
c/c++では無理か・・・
0755デフォルトの名無しさん
垢版 |
2017/11/16(木) 11:05:54.05ID:53UzEJx9
プロトタイプ開発はRuby使って本番は速度の出るC/C++、って事で良いならOK
それなら、開発時には要望にすぐ応えられながら、最終的にC/C++コードを用意できるよ
それでいい?
0756デフォルトの名無しさん
垢版 |
2017/11/18(土) 17:53:43.45ID:kuPeh4D6
C/C++で打てるなら何でもいいや
0757デフォルトの名無しさん
垢版 |
2018/02/28(水) 17:48:34.37ID:F8/eMdWm
>>753
よろすく
0758デフォルトの名無しさん
垢版 |
2018/02/28(水) 22:47:36.79ID:ugxprRf8
Ruby にも、Gosu というゲームエンジンがあるね

ただし、スマホ非対応で、デスクトップのみ
0759名無し@キムチ
垢版 |
2018/04/18(水) 19:45:57.57ID:5hyYD3PC
初歩的な質問ですが、fgxsdkを使ったプログラムと、openGLを使ったプログラムをつくりましたが、
どちらか片方づつだけしか使えません。ひとつのプログラムで両方使おうとするとエラーが出てしまいます。
どうしてそうなるのですか?またどうすればいいのですか?
0760名無し@キムチ
垢版 |
2018/04/18(水) 22:44:10.26ID:5hyYD3PC
openGLでファイル入出力はどうすればいいんですか?
0763デフォルトの名無しさん
垢版 |
2018/04/20(金) 09:50:54.22ID:WJk0jxxj
>>759
バッファを上書きしないように気を付ける
0764デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:43:37.32ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

I8BV0
0765デフォルトの名無しさん
垢版 |
2018/07/05(木) 01:49:09.02ID:RfoszcD2
ANU
0768デフォルトの名無しさん
垢版 |
2018/10/18(木) 00:55:17.79ID:FMfA4m/U
glClear(gl11.GL_COLOR_BUFFER_BIT|gl11.GL_DEPTH_BUFFER_BIT);

レンダラのこれ取っちゃうとか試してないけど
0771デフォルトの名無しさん
垢版 |
2019/01/08(火) 07:37:53.92ID:SoNd3QLm
c#とopentkをはじめたのですが、チュートがほぼないですよね
外国語でもいいのでおすすめ教えてください
エディタはvs2017です
0772デフォルトの名無しさん
垢版 |
2019/01/08(火) 11:28:47.40ID:GKZx39y6
なぜここで聴く
0774デフォルトの名無しさん
垢版 |
2019/01/08(火) 17:41:35.16ID:z71qAi1p
ていうか OpenGL の2スレ目とかかと思ったら
マジで OpenGL 2.0 のスレかよ
たまげた
0776デフォルトの名無しさん
垢版 |
2019/01/10(木) 21:59:00.99ID:CW8MrFEa
OpenGLって文字表示できないのかとあきらめていたが
Canvas使えば簡単に表示できたのか
アホや
0778デフォルトの名無しさん
垢版 |
2019/01/18(金) 08:10:26.60ID:5lpphMnz
Android版3dMarkのVulkanスコア改善したってよ
0780デフォルトの名無しさん
垢版 |
2019/02/08(金) 21:37:28.84ID:vepjAPaH
Windows環境ではVRAMにアクセスするには
WINAPIを通さないといけないと聞いたんだが
OpenGLもWINAPIを使ってるってことなんか?
0782デフォルトの名無しさん
垢版 |
2019/02/09(土) 05:10:01.01ID:pZkVGZ+U
WIN32/64APIのつもり
0783デフォルトの名無しさん
垢版 |
2019/02/09(土) 13:47:06.30ID:lpNDR5cs
乗算使うと白っぽくなっちゃうんですけど何とかなりませんか?
赤とか青にしたいんですけど
0785デフォルトの名無しさん
垢版 |
2019/02/09(土) 14:33:11.49ID:qckASXxA
>>782
カーネルをコールして、ドライバに処理をさせる、という意味では、
API呼び出しをしていると言えるけど…それは Direct X でも同じ
0787デフォルトの名無しさん
垢版 |
2019/02/10(日) 15:00:41.66ID:25jgEgQt
OpenGL.dll とかの関数を呼ぶのは
ドライバを使ってると言えるのか
それとも Win32API を使ってると言うべきか
0789デフォルトの名無しさん
垢版 |
2019/02/13(水) 22:23:37.13ID:Z+0fzii/
2Dの描画にOpenGL(or Direct3D)を直接使うのはAPIが複雑すぎるけど、それ以外にGPUを使う術がない
その代わりそれらをラップしたDirect2DやDXLibとか使えば良いと思うよ
0790デフォルトの名無しさん
垢版 |
2019/02/14(木) 05:02:29.49ID:SFw402Pv
rpgみたいなピクセル絵を表示するだけでもopenglのようなものが必要なんですか?
プログラミング言語だけではできないんでしょうか
0792デフォルトの名無しさん
垢版 |
2019/02/14(木) 12:53:26.85ID:b/dX4O0G
速度気にしないならpygletとか楽
0794デフォルトの名無しさん
垢版 |
2019/02/15(金) 05:01:48.11ID:Ayyf6Kdi
言語のデフォルトの機能だけではピクセル絵くらいのものということですよね
0798デフォルトの名無しさん
垢版 |
2019/02/15(金) 12:51:48.07ID:TNDmXWGM
公務員体質
0801デフォルトの名無しさん
垢版 |
2019/02/15(金) 13:17:24.22ID:TNDmXWGM
C++よりC
0803デフォルトの名無しさん
垢版 |
2019/02/16(土) 20:25:57.44ID:HHyiFibH
それが出来たらやりたいw
IntelはGPUの仕様を全て公開してるから出来なくはないけど容易じゃない…
0804デフォルトの名無しさん
垢版 |
2019/02/19(火) 19:49:46.46ID:A7j9/26R
マジデ2.0専用?
0805デフォルトの名無しさん
垢版 |
2019/02/24(日) 14:24:04.71ID:YwY0sV++
C++ を使っても綺麗にならない
C++ を使ってる意味が無い
0806デフォルトの名無しさん
垢版 |
2019/02/26(火) 18:46:20.46ID:eReabRDF
ねじれた四角形を使うのは良くないのでしょうか?
うまくシェダーできないと
どこかで見た記憶があります
でもどこで見たのか思い出せません
探して下さい
おながいしまつ
0807デフォルトの名無しさん
垢版 |
2019/02/26(火) 20:32:43.26ID:soDDf/1g
シェーディングは出来るが、最終的には2つの三角形に分割されるが、それが2通りあって意図しない分割になる可能性があるってだけ
0808デフォルトの名無しさん
垢版 |
2019/02/27(水) 01:19:05.28ID:MRsDMB32
GL_QUADS て廃止なったんじゃなかったっけ?
・・と思ってスレタイみたら OpenGL 2.0 専用スレだった・・なんてこった
0809デフォルトの名無しさん
垢版 |
2019/02/27(水) 12:53:52.33ID:+TCpifLa
>>806
CW/CCW気にしない用途ならいけるが
裏で消えるのが困るとかなら無理

理由は >>807 さんの通り
0810デフォルトの名無しさん
垢版 |
2019/03/03(日) 14:25:10.26ID:WWTgVSgk
なるほど深いですね
だとすると四角形の表示速度は三角形2つ分の速度になるのかもしれませんね
無理に四角形を多用してポリゴン数を減らしても
あまり速度的には意味がないのかもしれませんね
四角を使うか三角を使うかは
作業的な部分で優先させるのが得策かもしれませんね
かもしれませんね
0811デフォルトの名無しさん
垢版 |
2019/03/03(日) 14:58:23.30ID:dD/z12RZ
単純に倍にはならんよ
せいぜい4/3倍
0812デフォルトの名無しさん
垢版 |
2019/03/03(日) 17:06:12.50ID:j9YXwcJ5
つうかモデリングする人は普通に四角ポリゴンでデータを出力する
出力時点で三角に分割されるか、何らかのツールに通して分割するかは様々
0813デフォルトの名無しさん
垢版 |
2019/03/05(火) 09:52:10.99ID:2dm7hO5B
なるほど深すぎますね
対策としては四角形を使うときは
どの三角形に分割されても形が変わらない四角形を使うべきですね
某ツールの隣り合う三角形を四角形にするは使わないほうがいいですね
ですね
0814デフォルトの名無しさん
垢版 |
2019/03/05(火) 10:56:02.63ID:HwCl8Q1J
GL_POLYGON と GL_TRIANGLE_STRIP どっちが効率良いですか
0815デフォルトの名無しさん
垢版 |
2019/03/10(日) 10:45:59.62ID:foFpWnF7
vulkanはジャップ版の解説書、刊行予定すらないのな
日本人はOpenGLやれってことなんだろうな
0816デフォルトの名無しさん
垢版 |
2019/03/10(日) 15:02:20.85ID:uFsYqTSV
GL2のスレみたいだけど他にないからGL4の話していい?
0819デフォルトの名無しさん
垢版 |
2019/03/15(金) 17:39:42.56ID:52vXiwrP
(何でも)できらあ!
0822デフォルトの名無しさん
垢版 |
2019/06/20(木) 18:21:56.46ID:teg/tnA6
for文内で値が連続的に増加していく変数xの値を連続的にテキストファイルもしくはエクセルに出力したいのですが方法がわかりません
どなたかアドバイスをお願いします
0823デフォルトの名無しさん
垢版 |
2019/06/20(木) 20:33:17.29ID:GHYCPaSC
テクスチャに文字フォント置いてxの内容をレンダしそれを
キャプチャした後OCRでテキスト変換してエクセルにコピペ汁
0824デフォルトの名無しさん
垢版 |
2019/06/21(金) 00:54:26.84ID:FirfeIPX
すれちよ
0827デフォルトの名無しさん
垢版 |
2019/10/26(土) 08:53:21.14ID:cGvrt1T3
3つほど質問させてください

OpenGLで2D描画をしてますがピクセル座標を指定するには
i(0 〜 例えば639) → f(-1.0 〜 +1.0) を計算してglVertex2d(fx, fy)を使うのであってますか?他に良い方法がありますか

上のやりかただと環境(Windows10, Linux on VirtualBoxの違い)や描画対象(GL_POINTS, GL_LINES, GL_POLYGONの違い)で同じ座標を指定しても
描画されるピクセル座標がずれるのですが、どうやって処理するのが定番なんでしょうか

GL_POLYGONで画面に対して傾いていない四角形を描画した場合サイズが1ピクセル分小さくなったり
GL_LINESで終点が描画されないのは仕様でしょうか

以上、知っていたら教えて下さい
0828デフォルトの名無しさん
垢版 |
2019/10/26(土) 09:52:39.51ID:e6NVGnmw
全然違う
0829デフォルトの名無しさん
垢版 |
2019/10/27(日) 09:55:29.92ID:Wexb5eQy
>glVertex2d

使ったこと無いので憶測になるがこれを使用禁止にして
Z軸固定でいいから常に3次元指定すれば治るんじゃね

ドットが欠けるのは視点の角度や距離でなってるのか描
画指示が間違ってんのかGL仕様なのか
ズレてる状態じゃ検証も無理なので治ったら自分で考えて
0830デフォルトの名無しさん
垢版 |
2019/10/27(日) 13:16:55.20ID:s5CUaooM
glVertex3d (z=0.0, +1.0, -1.0) で試してみましたが変化ありませんでした
一応、計算式はこんな感じです(yは左下ではなく左上を原点にするために符号を逆転しています)

●最初に試したもの、ポリゴンの配置が描画エリア中心で大きく歪む
fx = ((x / (double)(SCREEN_W - 1)) * 2.0) - 1.0
fy = -1.0 * (((y / (double)(SCREEN_H - 1)) * 2.0) - 1.0)


●上記歪みはなくなるが GL_POINTS GL_LINES で位置がずれる
fx = ((double)x - ((double)SCREEN_W / 2.0)) / ((double)SCREEN_W / 2.0)
fy = (((double)SCREEN_H - (double)y) - ((double)SCREEN_H / 2.0)) / ((double)SCREEN_H / 2.0)

●GL_POINTS GL_LINES の代わりに GL_POLYGON で位置がずれる
fx = ((double)x - ((double)SCREEN_W / 2.0)) / ((double)SCREEN_W / 2.0) + (1.0 / (double)SCREEN_W)
fy = (((double)SCREEN_H - (double)y) - ((double)SCREEN_H / 2.0)) / ((double)SCREEN_H / 2.0) - (1.0 / (double)SCREEN_H)

描画は glBegin(GL_POLYGON等) → glVertex[2d/3d](fx, fy [,0.0])… → glEnd() で特に奇をてらっていません

基本的な所なので初心者にありがちなミスかやってる人には常識のバグ・仕様があるかと尋ねてみたのですが
そうでもないようなのでおま環として自分で調べる事にします
ありがとうございました
0831デフォルトの名無しさん
垢版 |
2019/10/27(日) 13:22:53.91ID:8V947NUS
OpenGLのピクセルセンターは(0.5, 0.5)にあって、そこが含まれてないとピクセルが打ち込まれない
だから639みたいに指定しても最後のピクセルが描画されないのはそういうこと
しかしDirectXは(0, 0)なんでOpenGLをDirectXに変換して実行してるようなVirtualBoxは描画されたりするんじゃないの?知らんけど
方眼紙に三角形を書いてピクセルの真ん中を通っているかを確認してどうやって描画されるから予想したものと実際の描画結果を見比べて見れば勉強になるだろう
0832デフォルトの名無しさん
垢版 |
2019/10/29(火) 18:22:24.90ID:+MY/wAux
初期設定の不備でシステム別にデフォルト値の違いがあって表示が乱れてるって事じゃないの
おれスマホしかやらんからPCは判らんけど
0833デフォルトの名無しさん
垢版 |
2019/12/06(金) 10:59:47.51ID:ZSKvcFXv
Desktop OpenGL 4.1 以降には OpenGL ES 互換モードがあるけど、実は、
OpenGL ES や WebGL の関数群は、Desktop OpenGL 1.0 には無かっただけで、
Desktop OpenGL 2.0 には全く同じものがあって、違いは、恐らく
Shader 言語 GLSL に厳密な互換性があるかどうかだけらしい。
厳密な互換性がない場合でも、基本的な互換性はあるように思える。知らないけど。
0834デフォルトの名無しさん
垢版 |
2019/12/06(金) 14:37:49.59ID:ZSKvcFXv
>>833
OpenGL 2.0 の、glVertexAttribIPointer, glUseProgram, glLinkProgram,
glCreateProgram, glBindBuffer, glBufferData などは、glext.h で宣言
されており、gl.h には入っていない。
Windows SDK 10 などには、gl.h の方しか入っていないので注意が必要。
cygwin の D:\cygwin\usr\include\w32api\GL
/usr/include/w32api/GL
には、gl.h, glu.h, glaux.h と共に glext.h も入っている。
0835デフォルトの名無しさん
垢版 |
2019/12/07(土) 13:53:03.68ID:4jkkIRaG
>>834
結論的に言うと、OpenGL 1.2 以降は、拡張 OpenGL と呼ばれ、
Windows では、MSは原則的に公式サポートはしておらず、
nVidia, AMD(ATI), Intel などが主導して統一(ARB という組織?)された
規格なんだそうだ。なので、ドライバは各社のものを使う必要がある。
しかし、新品のパソコンやMotherBoardを買ってきたりした場合、
予めドライバがインストールされていたり、ドライバの光学メディア
が付いてくると思うのでドライバは改めてインストールする必要は無いようだ。
なお、MSも、wglGetProcAddress() という API はサポートしていて、
それを使うとそれらの関数アドレスを統一して取得することは出来るようになって
いるので、拡張 OpenGL を使い始めるのに各社各様の方法を使う必要はない。

なお、glew というフリーのライブラリがあり、それを使うと、
wglGetProcAddress() を使ってくれて、あたかも最初から、
拡張 OpenGL の関数群がライブラリ関数としてあったかのように
使うことが出来る。
0836デフォルトの名無しさん
垢版 |
2019/12/07(土) 13:56:28.01ID:4jkkIRaG
age
0837デフォルトの名無しさん
垢版 |
2019/12/07(土) 13:57:52.93ID:4jkkIRaG
>>831
OpenGL 1.0 では、ピクセルセンターの位置も変更できました。
拡張 OpenGL では分かりません。
0838デフォルトの名無しさん
垢版 |
2019/12/09(月) 19:14:29.97ID:p1vnOdMl
>>835
補足すると、DirectXなどでも、ハードウェアに近いドライバは、
ハードウェア会社が用意していることが多い。しかし、DirectXの上位層
はMSが最初から用意している。なお、ドライバは層を成しており、
マザーボードとGPUの接続のためのドライバと、GPUのCoreUnit
を制御するためのドライバは別だったりするが、その話は置いておく
(もっと細かく分かれている可能性も有るが詳しくは分からない。)。

一方、OpenGLの場合は、上位層までハードウェアベンダーなどの
MS以外のサードパーティーが用意しているということ。ただし、
それだけだとアプリケーションからの呼び出しが余りにも不便になるので、
MS も wglGetProcAddress() だけは用意しているということになる。
0841デフォルトの名無しさん
垢版 |
2020/07/08(水) 00:54:38.93ID:i2MlnrFX
Android kotlinでopenGL やろうとしてるんだけどcontextがViewのrendrereに渡せず四苦八苦しています
touch eventの情報は渡せたけど加速度センサーの値が渡せない
洋書でもいいので何か参考になる資料があれば教えてください
0842デフォルトの名無しさん
垢版 |
2020/08/09(日) 22:53:15.77ID:Uv/1ywkg
遅レスだが
うちの設計だがレンダラの管轄的に描画関連 頂点 テクスチャ 視点のみ持たせてる
タッチイベントやセンサーなんかはメインプログラムが持っていてそれらを渡すのではなく
逆にメインがレンダラの描画関連配列の参照をもらうだけにしてる
0843デフォルトの名無しさん
垢版 |
2020/08/20(木) 00:01:45.21ID:rHVrqknA
思ったよりVulkan普及しないね
OpenGL系はもうオワコンかな
0846デフォルトの名無しさん
垢版 |
2020/08/20(木) 17:47:12.25ID:MbwRgkW9
>>843
Mobileでは、3DといえばOpenGLだし、Webの3DであるところのWebGLも、
OpenGL ESとほぼ同じもので、OpenGL ESは、OpenGL 1.2 とほぼ同じ流儀。
なので、今は、OpenGL 1.2 と同じ書き方をしていれば、全てのプラットフォームで
グラフィックが描けるほど、OpenGLは、流行っている。
むしろ、Direct3Dの方が廃れていると言えるほど。
0848デフォルトの名無しさん
垢版 |
2020/08/20(木) 20:05:02.96ID:X1nNk3cj
Vulkanとかボルツマンイニシアチブとか次々と矢継早に出てきたと思ったら急になにも動きが
なくなったね。AMDでもCUDA互換コードが動くとか期待してたんだが。
ありゃあ何だったんだろう。
0849デフォルトの名無しさん
垢版 |
2020/08/21(金) 02:02:11.80ID:ySC03NbV
>>847
それだよな、iOS対応が滞っちゃったのが一番の敗因だわ
Vulkan自体は面白いんだけどなぁ
なんでこんなクソ囲い込みOSが普及しちゃうんだksg
0851デフォルトの名無しさん
垢版 |
2020/08/21(金) 09:12:41.15ID:SPVvFNrm
>>849
普及した理由は、iOSだけは、ハードをAppleだけが出していて、
デバイスの形状や穴の位置が少数に限定されるため、デバイスの保護ケース(入れ物)
の選択肢が増え、女子高生達が欲しがるような「かわいいケース」
が使えることが一番大きいと見ている。
逆にAndroidデバイスでは、デバイスの形状がメーカーによってまちまちなため、
合うケースが機種ごとに分かれてしまうため、自分が持っている機種に対する
ケースは結果的に選択肢が少なくなってしまう。
そのため、女子高生が好むような「かわいいケース」が選べない事態となっている。
iPhoneの場合は、アリエルが背面に描かれたケースを友達が持っているとする。
それと同じものが、Androidでは似たものはあっても、デザインの品質が
悪かったりする。または、良いものが有ったとしても、たまたま自分の
持っているデバイスには形状が合わなかたりする。
店に行ったとしよう。iOS用のケースは、40種類置いてあるとする。Androidの
場合は、メーカーが10有るので、1つのメーカーでは、4つしか選択肢がない。
0852デフォルトの名無しさん
垢版 |
2021/01/13(水) 18:31:24.12ID:Sxr/fWPH
openGLってほんと今後どうなる?
Appleだけが非推奨にしたからといって消えるものでもないだろうけど
0853デフォルトの名無しさん
垢版 |
2021/01/13(水) 23:44:12.04ID:QL0ByxxR
M1MacでもまだOpenGL使えるらしい
もし使えなくなっても、MetalやVulkan上で動かすライブラリが有るから何も気にしないでいい
ほぼ永久に使える
ただ、最高性能を引き出すことは出来ないけどね
0854デフォルトの名無しさん
垢版 |
2021/01/14(木) 04:30:59.10ID:ckB9NomO
普通に考えるとそうなんだが、アップルはキチガイだから
ときどき囲い込みを完成するために急にえげつない施策をやってくるから要注意
たとえばMetalを使うアプリには特別に審査が必要、としておいて審査でOpenGLの
ラッパーつかってるものは全部リジェクトする、とかね
0855デフォルトの名無しさん
垢版 |
2021/01/14(木) 08:52:22.61ID:A91VfwUt
それは無理だろう
スタティックリンクすれば始めからMetal使ってるものとの区別がつかない
0856デフォルトの名無しさん
垢版 |
2021/01/14(木) 14:21:41.06ID:SRRh41dS
過去にMetalラッパーが非公式API使ってたからラッパー使ってるとリジェクト!
ってのはあったけどまあちょっと違う話ではあるかな

とはいえ実際にサード製のラッパーでしか動かせなくなったら
何も気にしなくていいって言えるほど安心はできないけどね
0858デフォルトの名無しさん
垢版 |
2021/07/26(月) 04:55:28.34ID:s0w+fTjB
いまさらopenGLはじめました
100個くらい同じ三角形を表示させると落ちる、、、
書き方なんだろうけど頑張ります
0859デフォルトの名無しさん
垢版 |
2021/07/26(月) 13:31:07.22ID:bC34eRyK
動かさず並べるだけなら余裕で1000個表示できた
移動させるときの変数の扱い方が悪いみたいだな…
Array使って中の変数の数値変えてるだけなんだけど
もう少し精進してみます
0860デフォルトの名無しさん
垢版 |
2021/07/26(月) 14:36:56.64ID:5u5J/MDS
その程度で落ちることは無いと思う
書き方が悪いとしたら
メモリリークかな
0861デフォルトの名無しさん
垢版 |
2021/07/26(月) 15:38:51.32ID:ZUHdqQ4+
1回だけでいい処理を繰り返し実行してるかもしれない
毎回bufferを生成してるとか
0862デフォルトの名無しさん
垢版 |
2021/07/26(月) 16:30:42.67ID:bC34eRyK
>>861
あ、それやっちゃってます…
三角形描く関数の中でバッファ作ってて、表示位置変えてその関数を何度も実行させて処理してますね…
見直ししてみます
ありがとです
0863デフォルトの名無しさん
垢版 |
2021/07/26(月) 20:48:21.08ID:ZUHdqQ4+
GLのBufferはサイズが不定だから最初ちょっと引っ掛かった
最大サイズが決まってる箱じゃなくて紙を好きなだけ挟めるファイル(バインダー)を
イメージするといいかもしれない
0864デフォルトの名無しさん
垢版 |
2021/08/04(水) 14:59:42.82ID:+oXHFO6s
androidのopenGL ESやってるけど
5年くらい前の機種だとメモリなのかCPUなのかとにかく足らない
0867デフォルトの名無しさん
垢版 |
2021/08/21(土) 14:50:01.54ID:qzzQq94j
メモリーリークはどこかしらコードが間違ってる可能性高いよ
例えばglDelete忘れてるとかありがち
0868デフォルトの名無しさん
垢版 |
2021/09/05(日) 03:09:26.09ID:SP9DaJwh
カメラの位置 gluLookAt なんだけど
視点から注視点と、視点から頭の方向の2つのベクトルは直行してなくてもいいんだよね?
0869デフォルトの名無しさん
垢版 |
2021/09/05(日) 15:03:03.81ID:LgQhIBwq
平行(独立していない)だとだめじゃないか?
0870デフォルトの名無しさん
垢版 |
2021/09/05(日) 16:57:35.20ID:ALa5clAd
868です。
自己解決しました…たぶん…



視点→注視点

間の角度が何度だろうと
この2つのベクトルに直行する外積のベクトルが画面のx軸になるってことだと思う

なので独立も平行もないと思います
環境によっては異なるかもしれません
間違ってたらごめんなさい
0871デフォルトの名無しさん
垢版 |
2021/09/06(月) 15:09:19.32ID:DsY+3+kX
だから平行だと外積は?
レスを投稿する


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