まとめてフラットシェーディング風にしてみます。分かれて見えてしまいます。今回は気にしないでいきます。座標もずらしてみます。座標がずれるだけなので、形状として厳密に正しい物ではないです。頂点演算を行う必要があります。方がスルー出力になります。使わない場合の利点です。正しく面法線を求めていれば、三角形ではなく四角形に押し出されていたはず。側のコードは何も修正しなくて済みます。呼び出し側も変更しなければなりませんでした。省略は出来ませんでした。同じ内容を割り当てることで省略できます。ポリゴンを増やしてみます。中に元の形状が内部に置いてある状態です。併用した方が効率がよいかもしれません。wrote:OpenGLの新しいフィーチャーを日本語で扱っているサイトが少なく、以前このページは非常に参考になりました。OpenTKを使用しC#からOpenGLを利用してます。以前はこのページを参考にGSを使用したサンプルを記述してみました。VSout[3];と宣言しGSからはVSout[i].vpositionといった具合に呼び出し問題なく使用できていたのですが、最近OSを7(64bit)に変更したせいか、それともGeforceのドライバーのバージョンを258.96に変更したせいか、とある問題が発生しました。その問題と言うのは、上記の宣言の仕方をした場合にGSのvpositionへとスルーさせるためのVSのin変数のロケーションが取得できなくなるというものです。具体的にはGetAttribLocationを使用し該当のVSのin変数を指定した場合に「-1」が返ってきます。GT)だけなのか、最新のGeforceドライバーが問題なのかがわかりません。GS内での上記宣言をした場合に問題なくいくかどうかを試していただければ幸いです。wrote:すみません。vposition[3];というシンプルな書き方をした場合には問題は起こりません。wrote:仕事が忙しすぎてしばらくは無理かもしれません。何か変わったのかもしれません。つくり直してみてはいかがでしょうか。余裕があればまた新しいドライバで試してみたいと思います。wrote:いえいえとんでもないです。時間のあるとき、気が向いたときにでも試していただければ十分です。