ゲーム製作に関する筆問
しょうぐん  2014/05/21(Wed) 16:04
2Dから3Dのゲーム制作に必要なプログラム技術やSiv3Dのリファレンスの質問をさせていただきます
しょうぐん  2014/05/21(Wed) 16:06
3Dに関する質問で、Boxにテクスチャを張り付けて描画はできたのですが、そのBoxのテクスチャを反転することは可能でしょうか?

よろしくお願いします
Reputeless  2014/05/21(Wed) 20:16
(A) Box の面を反転したい
(B) Texture を反転したい
どちらを実現したいのわかりませんが、サンプルをおいておきます。
いずれかが役に立つと思います。違ったら言ってください!

# include <Siv3D.hpp>

void Main()
{
const Texture texture(L"Example/Windmill.png", Texture::Mipped);

const Texture textureFlipped(Image(L"Example/Windmill.png").mirror(), Texture::Mipped);

Graphics::SetLight(0, Light::Directional({ 0.5, 1.0, -0.5 }));

Graphics::SetAmbient(ColorF(0.2));

// 面を反転した Box (内側からしか見られない)
const Mesh boxFlipped(Geometry3D::CreateBox({ 5, 5, 5 }, true));

while (System::Update())
{
Graphics::FreeCamera();

Plane(50).draw();

// [1] 通常
Box({ -12, 2.6, 0 }, 5).draw(texture);

// [2] Box の面を内側に反転
boxFlipped.translate({ -4, 2.6, 0 }).draw(texture);

// [3] Texture を反転
Box({ 4, 2.6, 0 }, 5).draw(textureFlipped);

// [4] (1)と(2) の組み合わせ(裏表どちらからも見える)
Box({ 12, 2.6, 0 }, 5).draw(texture);
boxFlipped.translate({ 12, 2.6, 0 }).draw(texture);
}
}
しょうぐん  2014/05/21(Wed) 22:02
コードがキレイでわかりやすかったです
ありがとうございました。

また、筆問なんですけど
TextureAssetでの3DBoxに張り付けたテクスチャを反転はできますでしょうか?

よろしくお願いします
Reputeless  2014/05/21(Wed) 22:19
上記コードの [3] を実現したいということでよろしいでしょうか。

Mesh に貼る Texture は加工できません。
あらかじめ反転済みの画像を用意するか、
反転して貼りつけてある OBJ モデルファイルなどを用意する必要があります。
しょうぐん  2014/05/21(Wed) 22:32
わかりました

ありがとうございます

また、わからないことがあれば、お聞きしたいと思っています

よろしくお願いします
名無し  2014/05/25(Sun) 12:13
3Dでの質問です


カメラの方向に合わせてプレイヤーの移動方向も変えることしたいと思ってるんですけど、MatrixとVectorを使ってやろうとしてるんですけど、MatrixをVectorに変換するためのTransformがなくて困っています。

もし、やり方があれば、教えてもらえないでしょうか?

よろしくお願いします

- WEB PATIO -