HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0622
わた雲hgimg3の3D表示で発生するギザギザについて5解決


わた雲

リンク

2017/6/22(Thu) 08:03:23|NO.80346

オブジェクトとオブジェクトが交差する部分で、
境目が綺麗な直線ではなくギザギザしています。
また、カメラから離れると、交差していなくても近接しているだけでギザギザが生じます。
地面の上に置いた立方体が、上空の遠くから眺めると地面にスッポリ覆われて見えなくなることもあります。

これを解決する方法はありますか?



この記事に返信する


kino

リンク

2017/6/22(Thu) 19:02:21|NO.80350

ちょっとイメージできないので
C:\hsp34\sample\hgimg3
C:\hsp34\hsptv
などのリソースを使うなどして
その状態を再現したスクリプトをここに貼ってもらえるといいんですけどねー
お役に立てるかはわかりませんが^^;



ZAP

リンク

2017/6/22(Thu) 20:39:38|NO.80351

Zファイティングの問題かもしれません。

私も似たような問題に突き当たったことがあり、過去、質問してます。
参考になれば。

http://hsp.tv/play/pforum.php?mode=pastwch&num=53950



わた雲

リンク

2017/6/23(Fri) 08:07:33|NO.80355

>ZAPさん
farZの値を小さくしてみても、状況はあまり変わりませんでした。

>kinoさん

こちらがスクリプトです。
(矢印キーでカメラ移動、Enterで拡大、スペース縮小)

screen 0,800,600 #include "hgimg3.as" hgini setcolor 128,128,128 addplate m_a,0,1024,1024,0,0,1024,1024 regobj a,m_a setpos a,0,0,0 setang a,-M_PI/2.0 setcolor 64,64,64 addbox m_b,64,64 regobj b,m_b setpos b,0,-33,0 cammode CAM_MODE_LOOKAT setpos HGOBJ_CAMERA,0,-100,500 setdir HGOBJ_CAMERA,0,0,0 setefx HGOBJ_CAMERA,M_PI/4.0,0.5,8192 r=500.0 repeat hgdraw stick key,63 if key&1 : radx-1.0 if key&2 : rady-1.0 if key&4 : radx+1.0 if key&8 : rady+1.0 if key&16 : r+10.0 if key&32 : r-10.0 setpos HGOBG_CAMERA,r*sin(deg2rad(radx))*cos(deg2rad(rady)),r*sin(deg2rad(rady))-100,r*cos(deg2rad(radx))*cos(deg2rad(rady)) hgsync 15 loop



Drip

リンク

2017/6/24(Sat) 00:26:15|NO.80370

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台で
動作チェックを行う事を強くお勧めします。



わた雲

リンク

2017/6/24(Sat) 09:40:38|NO.80374

>Dripさん

ありがとうございます!
NearZの値を大きくした結果、かなり改善されました。
丁寧なご指導、ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.