Dripです。
わた雲さん、こんにちは。Zソートの精度の問題で難儀されていらっしゃるようですが、
実はFarZの値を変更してもあんまり意味がありません。
このZソートの精度に大きく影響を与えるのはNearZの値の方です。
以下のサンプルを実行して実際にZソートの精度の変化を確認してみてください。
#include "hgimg3.as"
hgini
setcolor 255,0,0:addplate a,0,80,80 //赤パネル登録
setcolor 0,0,255:addplate b,0,80,80 //青パネル登録
setpos HGOBJ_CAMERA,0,0,150 //カメラ位置設定
regobj a,a:setang a,-0.1,-0.3 //赤パネル作成
regobj b,b:setang b,-0.3,0.2 //青パネル作成
repeat
setefx HGOBJ_CAMERA,m_pi/4,0.1+(cnt/60)\2*5,1000 //1秒おきにNearZを変更してみる
hgdraw //描画
hgsync 15
loop
近接描画で3Dならではの迫力ある描画を行うために、
NearZにはなるべく小さな値を設定したいところですが、
NearZが小さくなればなるほど、Zソートが雑になります。
近接描画は甘美な果実…ということで、
この精度と相談しながら開発するゲームの方を工夫するしかありません。
わた雲さんのスクリプトでは、
setefx HGOBJ_CAMERA,M_PI/4.0,0.5,8192
の行の0.5の部分を5とかにしてみてください。
Zソート精度が格段に向上するかと思います。
更に、この精度はコンピュータに搭載されているグラフィックカードの影響をふんだんに受けます。
GeForceなどのグラフィックボードを搭載したPCとオンボードPCとでは、歴然の違いがあります。
Direct3Dを利用したアプリケーションを開発する場合、オンボートPCとゲーミングPCの最低2台で
動作チェックを行う事を強くお勧めします。