・描写関連のみ完全に別スレッド化!
本当は、頂点の座標変換&頂点ライト計算と、ピクセル描写部分とでもスレッド化できそうだったけど、
メモリの受け渡しが大変そうなので、諦めました。
※座標変換・光の計算を終わったデータのバッファだけで、1更新当たり2MBぐらいになりそう
あと、まだ世間的にはデュアルコアが主流だと思うしうん。・アクティブレンダリング
アクティブレンダリング – Javaでゲーム作りますが何か?」をみながら実装。
いや、実装してから分かるけどぜんぜん違う。
やばい。データの描写中によるpaintComponentのちらつきが全然なくなった。
ティアリング?が残っているから、ちらつきが全くなくなったわけじゃないけど。
今までは

	synchronized public void paintComponent(Graphics g) {
		super.paintComponent(g);
		if(!isShowing()){
			return;
		}
		g.drawImage(solid.getBufferedImage(),0,0,this);
		Toolkit.getDefaultToolkit().sync();
	}

ってやっておいて、タイマでthis.repaint();しまくってたけど、
アクティブレンダリングはぜんぜん違う。アクティブレンダリングばんざい!

・SoftGround(勝手に呼んでる)の対応
←こういうの

実際の実行した画面。(紫が法線)

テクスチャは、U反転・V反転・右に回転(1回~3回)といろいろ対応。
これで、洞窟とか平地とか、滑らかな地形は作れそう。

次は、HardGround(これも自分で勝手によんでる)というのを対応させたい。
←こういうの

こっちは難しそう。
1つのブロックに3つの面があれば実装できそうだけど、
壁に当たる部分は凹んだり凸ったりすることもあるから、
カリングの問題でサーフェイスを、先に単純に張っておくってことも出来ない?
でもHardGroundは、家の中とか、遺跡の中とかそういう整形された地形には欠かせない。
うん。

ゲームでも使えるように速度・メモリ重視っていうのが難しい。
考えてるだけで時間が過ぎていく。
でもアルゴリズムを考えてるときって楽しいよね。

関連記事

  • Javaで3Dゲーム開発日記 part1Javaで3Dゲーム開発日記 part1 以前作ったこれは、とにかく3Dの表示にチャレンジということで拡張性がありませんでした。 ということで、今回は、物体を単位として色々設定できるオブジェクト、UV座標は0~1、 当たり判定、画像レンダリングを別スレッドへ、の4つを意識して再び作成。 モーションは、まだまだ敷居が高いので諦めます。(((っ・ω・)っ 「UV座標は0~1」というのは、以前は素の値(0-256と […] Posted in ゲーム制作
  • Javaで3Dゲーム開発日記 part4 パーリンノイズJavaで3Dゲーム開発日記 part4 パーリンノイズ 3Dと言ったらやっぱりテクスチャ。 パーリンノイズを作ってみた。 ノイズの間は線形補完しています。 本当はバイキュービックとか、しっかりした補完がいいと思うのですが、技術力不足で無理でした。(>_<) こんなのが出来上がるなんて、ランダムって不思議です! 自動生成を利用すれば、小さなファイルサイズでも、高解像度テクスチャを利用できます。 […] Posted in ゲーム制作
  • Javaで3Dゲーム開発日記 part5 画像補間Javaで3Dゲーム開発日記 part5 画像補間 以前の続きでテクスチャのパーリンノイズの補間法の話です。 いい加減補間について調べようといろいろとプログラムして作ってみました。 テクスチャなので、上下と左右が繋がるように補間します。 8x8px → 256x256px […] Posted in ゲーム制作
  • Javaで3Dレンダラ作りたい人まとめJavaで3Dレンダラ作りたい人まとめ Javaでソフトウェアレンダリングを勉強したい人の調べ物まとめ。順番は関係ないです。 誰もが一度は作ってみたいと思う?3Dソフトレンダラ。是非チャレンジしてみて下さい!!  講座系 石田智史さんの「JAVAで学ぶ3D」 (gcj/JAVAde3D)(Internet […] Posted in ゲーム制作
  • 3Dネット対戦ゲーム作成日記 part63Dネット対戦ゲーム作成日記 part6 やったー 意外に簡単に裏面の処理ができちゃった! まさか2つのベクトルの外積の計算式がこんなところで役に立つなんて。 ただ1つの面を調べるのに8回もatan使ってます。 速度は大丈夫かな、描写速度よりは計算速度のほうが速いからいいけど。 だれか4点から右方向に回転か、左方向に回転か調べる方法でもっといい方法があったら教えて下さい^^ /*4点が左回 […] Posted in ゲーム制作
  • Javaで3Dの音声視覚エフェクトを作った part4Javaで3Dの音声視覚エフェクトを作った part4 いままで、SO2、SO2と言ってきましたが、 (SO2=1998年に発売したスターオーシャン2というテレビゲーム) 多分普通の人は知らないので、 しまってあったPS2を出してスクリーンショットを撮ってきました。 ボイスコレクション画面 […] Posted in ツール制作