Metalでテクスチャを貼る
Apple謹製サンプルコードにMetalTextureQuadというのがあってね。これを参考にしてオブジェクトにテクスチャを貼ってみたのよ。
ところがね、、、

↑あら?おかしい。一応オブジェクトに貼り付いてはいるんだけど座標がなんだかおかしいような?上下を反転させてみてもやっぱり変なまま。
もしかしてBlenderでのデータ作成で間違えてたか?と思って同じデータをOpenGL ES使って確認してみる。

↑ちゃんと表示されてる。テクスチャの座標などのデータは問題なくて、やっぱりMetalでのコードがどこかおかしいんだな。
元々上下の反転部分はこういう記述になってるんだけど、、、

↑おおお!期待通りにテクスチャ貼れた〜!
でも、なんだか暗いぞ?法線情報がおかしい?ってことで続く。
ところがね、、、

↑あら?おかしい。一応オブジェクトに貼り付いてはいるんだけど座標がなんだかおかしいような?上下を反転させてみてもやっぱり変なまま。
もしかしてBlenderでのデータ作成で間違えてたか?と思って同じデータをOpenGL ES使って確認してみる。

↑ちゃんと表示されてる。テクスチャの座標などのデータは問題なくて、やっぱりMetalでのコードがどこかおかしいんだな。
元々上下の反転部分はこういう記述になってるんだけど、、、
{ CGContextTranslateCTM(pContext, width, height); CGContextScaleCTM(pContext, -1.0, -1.0); }うん?よく見ると上下左右とも反転させてるじゃない。サンプルコードはこれでいいのかもしれないけどOpenGL ESの時は上下反転だけさせてたなってことで上下反転だけにしてみる。
{ CGContextTranslateCTM(pContext, 0.0, height); CGContextScaleCTM(pContext, 1.0, -1.0); }

↑おおお!期待通りにテクスチャ貼れた〜!
でも、なんだか暗いぞ?法線情報がおかしい?ってことで続く。
<< 法線と光源の内積でテクスチャの明るさを決める TopPage Bulletの64ビット対応 >>
トラックバック
トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/941-b00a88d2
http://ringsbell.blog117.fc2.com/tb.php/941-b00a88d2