> 1.斜めに画像を設置するには三角形のマスク画像を作らなくてはいけないのでしょうか?
DrawPolygon2D という関数を使用すると三角形に画像を描画することができます
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int texhandle ;
VERTEX2D Vert[ 3 ] ;
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// テクスチャを読み込む
texhandle = LoadGraph( "Tex1.bmp" ) ;
// 1ポリゴン分の頂点のデータをセットアップ
Vert[ 0 ].pos = VGet( 0.0f, 0.0f, 0.0f ) ;
Vert[ 0 ].rhw = 1.0f ;
Vert[ 0 ].dif = GetColorU8( 255,255,255,255 ) ;
Vert[ 0 ].u = 0.0f ;
Vert[ 0 ].v = 0.0f ;
Vert[ 1 ].pos = VGet( 256.0f, 0.0f, 0.0f ) ;
Vert[ 1 ].rhw = 1.0f ;
Vert[ 1 ].dif = GetColorU8( 255,255,255,255 ) ;
Vert[ 1 ].u = 1.0f ;
Vert[ 1 ].v = 0.0f ;
Vert[ 2 ].pos = VGet( 0.0f, 256.0f, 0.0f ) ;
Vert[ 2 ].rhw = 1.0f ;
Vert[ 2 ].dif = GetColorU8( 255,255,255,255 ) ;
Vert[ 2 ].u = 0.0f ;
Vert[ 2 ].v = 1.0f ;
// 2Dの1ポリゴンの描画
DrawPolygon2D( Vert, 1, texhandle, TRUE ) ;
// キー入力待ち
WaitKey() ;
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
頂点データを用意しなければならないので DrawExtendGraph 等に比べると面倒ですが・・・
> 2.拡大縮小描画を行わない限り大きい画像のサイズは二のべき乗になりませんが、左右の-x,+x面は背景色が漏れ出ることはないのでしょうか?
うっかりしていました、確かにご指摘の通りです・・・となるとこのように 30分割に・・・?
[ 無 ] [ 無 ] [ -z ] [ 無 ] [ 無 ]
[ 無 ] [ @0 ] [ +y* ] [ @1 ] [ 無 ]
[ -z ] [ -x* ] [ +z* ] [ +x* ] [ -z ]
[ 無 ] [ @2 ] [ -y* ] [ @3 ] [ 無 ]
[ 無 ] [ -x ] [ -z* ] [ +x ] [ 無 ]
[ 無 ] [ 無 ] [ +y ] [ 無 ] [ 無 ]
うーんちょっと現実味が無くなってきました・・・
一番端の背景色が漏れ出るのを防ぐための部分はぼかしサイズ次第で小さくすることができるので、
その辺りで調整すればまだ何とかなるかもしれませんが・・・
> (リファレンスによると二のべき乗サイズでない画像のぼかしは色がにじむことになっていますが修正されたのでしょうか?)
いえ、現在もリファレンスにある通りです
> ミップマップを使いたいと思った理由は、ぼかしたマップで疑似的なイメージベースドライティングを行いたかったからです。
ご解説ありがとうございます
因みに Direct3D 9 の場合は描画対象にできるテクスチャでミップマップを使用することはできませんので、
リアルタイムにレンダリングした結果をキューブマップに使用する場合は多数のテクスチャを
ピクセルシェーダーで使用するという方法しかないと思います( 若しくは大きなテクスチャに複数の
ミップマップレベルの画像を配置してピクセルシェーダーで読み取る座標を操作すれば1枚のテクスチャで
擬似的にミップマップを使用することはできそうですが・・・ )
> ところで、このトピックで何度か上がっているGraphFilter関数ですが、直接キューブマップを扱うことには対応していないのでしょうか。
すみません、今のところキューブマップは色々な機能に正式に対応していません
GraphFilter に対応しようと思いますが、ここ1週間ほど掛けて行っていた変更による不具合の修正も
しなければならず少し日数が掛かりそうです、申し訳ありませんが暫くお待ちください m(_ _;m