背景


背景の設定や霧効果についてです。

背景 / / 戻る / トップページ


背景の設定

ここで言う背景とは無限遠方にあるものを指します。 つまり、物体を置かなかった場合に見えるものです。
 
背景を設定するには Background オブジェクトを設定します。 Retained Mode では SceneGraph に Background オブジェクトをぶら下げます。 Immediate Mode では GraphicsContext3D オブジェクトに対して setBackground(Background background) メソッドで Background オブジェクトを登録します。
 
Background オブジェクトに色を設定した場合、 背景はその色で埋め尽くされます。 コンストラクタ Background(Color3f color) か メソッド setColor(Color3f color) または setColor(float r, float g, float b) で色を設定できます。
	Background background=new Background(new Color3f(0.05f,0.05f,0.2f));
Background オブジェクトに ImageComponent2D オブジェクトを設定した場合、 背景は画像が表示されます。 コンストラクタ Background(ImageComponent2D image) か メソッド setImage(ImageComponent2D image) を使います。 ImageComponent2D オブジェクトはこのような場合に使う 画像を参照しているオブジェクトです。
	ImageComponent2D image=new ImageComponent2D(
		ImageComponent2D.FORMAT_RGB,someImage);	// someImage は BufferedImage オブジェクト
		// (BufferedImage は JDK 1.2 から追加されたクラスです)
	
	Background background=new Background(image);
また、Background オブジェクトはその適用範囲を設定する必要があります。 範囲は Bounds オブジェクト (実際はサブクラスのオブジェクト) が表現しますので、 それを setApplicationBounds(Bounds region) で設定します。
	BoundingSphere bounds=new BoundingSphere(
		new Point3d(0.0,0.0,0.0),100.0);	// 原点を中心とする半径 100.0 の範囲
	
	background.setApplicationBounds(bounds);

霧 (フォグ) 効果

霧効果を設定するには Fog オブジェクトを設定します。 Retained Mode では SceneGraph に Fog オブジェクトをぶら下げます。 Immediate Mode では GraphicsContext3D オブジェクトに対して setFog(Fog fog) メソッドで Fog オブジェクトを登録します。
 
Fog オブジェクトは 実際には Fog クラスのサブクラスを実体化します。 Fog クラスのサブクラスには霧のかかり方の違う ExponentialFog, LinearFog の 2 種類があります。
 
また、Fog オブジェクトもまた適用範囲を設定する必要があります。 範囲は Bounds オブジェクト (実際はサブクラスのオブジェクト) が表現しますので、 それを setInfluencingBounds(Bounds region) メソッドで設定します。
	BoundingSphere bounds=new BoundingSphere(
		new Point3d(0.0,0.0,0.0),100.0);	// 原点を中心とする半径 100.0 の範囲
	
	Fog fog=new LinearFog(new Color3f(1.0f,1.0f,1.0f),1.7f,3.0f);
	fog.setInfluencingBounds(bounds);

戻る