ゲーム製作に関する筆問
しょうぐん 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がなくて困っています。
もし、やり方があれば、教えてもらえないでしょうか?
よろしくお願いします