[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:00020] Re: DepthComponentFloat クラスについて
鈴村@広島市立大
> うーん、この「線形でない」というのが分からないのですが、
> 視点からの距離であればどの点も一次補間で求まるのでは...
nearクリップが0、farクリップが1としてfloat[0,1]に正規化されるんですが、
このfloat[0,1]の値が、実際のnearクリップからの距離(最大値:farクリップ)に比例してないんです。
これを私は「線形でない」と言っていたんですが。
具体的に例を挙げると、
nearクリップからfarクリップまでの距離が10とした時、
その対応は
near far
位置 0 1 2 3 4 5 6 7 8 9 10
├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤
係数 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
じゃなくて、
位置 0 1 2 3 4 5 6 7 8 9 10
├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤
係数 0.0 0.9 0.95 0.97 0.98 0.99 0.993 0.995 0.997 0.998 1.0
といったようになっていて、
グラフで表すと 1/x とか 1/x*x 、あるいは -1/log(x)といったような
曲線に近いものになります。
なので、位置1にある物体を、単純にnearからfarの距離に係数を乗算して算出すると
本当は1が算出されてほしいのに、実際には 10 * 0.9 = 9 が算出されるということになってしまいます。
というわけで、1次補間では求められないかな、と。
私は1次補間をこう解釈したんですが。
間違っていたらすいません。