Re: DrawCube3Dが非常に遅い ( No.1 ) |
- 名前:管理人 日時:2020/04/11 06:32
90万個はかなりの数ですね、仮に DrawCube3DSet を作成しても 60FPSで 90万個の
Cubeを描画するのは難しいと思います
最適化の余地がありそうなのですが、どのような表現をされようとしているのでしょうか?
|
Re: DrawCube3Dが非常に遅い ( No.2 ) |
- 名前:Marshal 日時:2020/04/14 09:11
管理人様
TcpIp通信等で取得した3次元データ(大凡90万点)を使ってCube3Dに描画しようとしております。
DX.VECTORデータは描画前に全て揃った状態で下記を実施しましたが、かなり描画速度に差が出ています。
Pixel3Dの場合は、ある程度高速描画が出来ますが、Cube3Dの場合は5Fps程度しか出ていないようでした。
もし最適化が可能でしたら、お手数をお掛けして恐縮なのですが、、カスタマイズして頂けますと大変助かります。
以上、何卒宜しくお願い致します。
|
Re: DrawCube3Dが非常に遅い ( No.3 ) |
- 名前:管理人 日時:2020/04/15 08:47
|
Re: DrawCube3Dが非常に遅い ( No.4 ) |
- 名前:Marshal 日時:2020/04/16 21:18
管理人様
お手数をお掛けし早々に御対応して頂いたのに、なかなか確認する時間を取れずに現状おります。
来週中にはリビルドして動作確認させて頂きますm(_ _)m
以上、何卒、宜しくお願いします。
|
Re: DrawCube3Dが非常に遅い ( No.5 ) |
- 名前:Marshal 日時:2020/05/20 13:08
管理人様
動作結果のご連絡が遅くなり申し訳ありません。
一通り動作確認しておりますが、DrawCubeSet3DのFillFlagをDX.FALSEに指定すると下記のような例外が発生するようです。
DX.DUBEDATAには90万データ分、設定しております。
ちなみに、FillFalgをDX.TRUEにすると問題なく動作しております。
原因の方を調査してい頂けませんでしょうか?
以上、何卒、宜しくお願い致します。
Error内容:
型 'System.AccessViolationException' のハンドルされていない例外が DxLibDotNet.dll で発生しました。
|
Re: DrawCube3Dが非常に遅い ( No.6 ) |
- 名前:管理人 日時:2020/05/21 01:34
|
Re: DrawCube3Dが非常に遅い ( No.7 ) |
- 名前:Marshal 日時:2020/05/21 09:23
管理人様
早速修正して頂き、有難う御座います。
ただ、DX.FALSEに変更し実行してましたが、絵が何も出ておりません。
DX.TRUEの場合は、問題なく絵が出ております。
DX.DUBEDATAのα値は、0,128,255と実験してみましたが、変わらず何も絵が出ないようです。
本来であれば、キューブ上の骨格だけ出る想定ですよね?
以上、何卒、宜しくお願い致します。
|
Re: DrawCube3Dが非常に遅い ( No.8 ) |
- 名前:管理人 日時:2020/05/22 00:57
すみません、ライティングが ON になっていると必ず真っ黒の線で描画されるように
なってしまっていました
DX.SetUseLighting( DX.FALSE );
を実行してライティングを OFF にしてから DrawCubeSet3D を実行することで正常な描画結果が得られると思います
あと、ライティングが ON だと真っ黒の線になるバグを修正したバージョンをアップしましたので、
もしよろしければお試しください m(_ _;m ( 線描画でライティングすることはあまり無いと思いますが… )
https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
|
Re: DrawCube3Dが非常に遅い ( No.9 ) |
- 名前:Marshal 日時:2020/07/17 13:23
管理人様
上記のDrawCubeSet3Dですが、FillFlgをTrueにしますと、DrawCubeSet3Dで描画した画の大部分が壊れた感じの表示となります。
Falseの場合は、標準ライトを含め、特に問題なく描画できています。
ご確認のほどよろしくお願い致します。
|
Re: DrawCube3Dが非常に遅い ( No.10 ) |
- 名前:管理人 日時:2020/07/17 23:12
> 上記のDrawCubeSet3Dですが、FillFlgをTrueにしますと、DrawCubeSet3Dで描画した画の大部分が壊れた感じの表示となります。
壊れた感じ…ですか…
すみません、それは具体的にはどのような見た目の状態でしょうか?
とりあえず以下のような縦横4×4の箱を DrawCubeSet3D で描画して、カメラがその箱の周りを
くるくる周るプログラムを作成して確認してみましたが、特に描画結果に問題はありませんでした
#include "DxLib.h"
#include <math.h>
#define NUM (4)
#define SIZE (64.0f)
#define SPACE (128.0f)
#define TOTAL_SIZE (SIZE + SPACE * (NUM - 1))
CUBEDATA Cube[ NUM ][ NUM ] ;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int i, j ;
float Angle ;
// ウインドウモードで起動
ChangeWindowMode( TRUE ) ;
// 背景の色をグレーに設定
SetBackgroundColor( 128,128,128 ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1 ;
// 描画先を裏画面にする
SetDrawScreen( DX_SCREEN_BACK ) ;
// Zバッファを有効に設定
SetUseZBufferFlag( TRUE ) ;
// Zバッファへの書き込みを有効に設定
SetWriteZBufferFlag( TRUE ) ;;
// キューブの情報をセット
for( i = 0 ; i < NUM ; i ++ )
{
for( j = 0 ; j < NUM ; j ++ )
{
Cube[ i ][ j ].Pos1 = VGet( j * SPACE - TOTAL_SIZE / 2.0f, 0.0f, i * SPACE - TOTAL_SIZE / 2.0f ) ;
Cube[ i ][ j ].Pos2 = VGet( j * SPACE - TOTAL_SIZE / 2.0f + SIZE, SIZE, i * SPACE - TOTAL_SIZE / 2.0f + SIZE ) ;
Cube[ i ][ j ].DifColor = GetColorU8( 255, 255, 0, 255 ) ;
Cube[ i ][ j ].SpcColor = GetColorU8( 0, 0, 0, 0 ) ;
}
}
// カメラの位置を初期化
Angle = 0.0f ;
// カメラの Near, Far をセット
SetCameraNearFar( 20.0f, 6000.0f ) ;
// メインループ
while( ProcessMessage() == 0 )
{
// 画面のクリア
ClearDrawScreen() ;
// カメラの位置を更新
Angle += 0.025f ;
// カメラの位置と向きをセット
SetCameraPositionAndTarget_UpVecY( VGet( cos( Angle ) * 500.0f, 400.0f, sin( Angle ) * 500.0f ), VGet( 0.0f, 0.0f, 0.0f ) ) ;
// 箱の描画
DrawCubeSet3D( Cube[ 0 ], NUM * NUM, TRUE ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
}
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}
よろしければ Marshalさんの環境でも↑のプログラムであれば正常に動作するか
試してみていただけないでしょうか? m(_ _)m
|
Re: DrawCube3Dが非常に遅い ( No.11 ) |
- 名前:Marshal 日時:2020/07/20 10:05
管理人様
迅速なご回答有難うございました。
上記同様のコードにて確認してみましたが、下記の描画結果写真のようになるようです。
画をみて頂き何が問題なのかある程度検討はつきますでしょうか?
※URLの先頭に"h"をつけて下さい。
以上、宜しくお願い致します。
ttps://firestorage.jp/download/5263c25a9b21ed75bdf69196c61268c9d24a9877
ファイル名:DrawCubeSet3Dの描画結果写真.zip
|
Re: DrawCube3Dが非常に遅い ( No.12 ) |
- 名前:管理人 日時:2020/07/21 23:14
> 上記同様のコードにて確認してみましたが、下記の描画結果写真のようになるようです。
アップしていただいた画像は私が No.10 に載せたプログラムの実行結果とは異なるようですが、
私が No.10 に載せたプログラムでもアップしていただいた画像のような描画結果になってしまう
ということでしょうか?
> 画をみて頂き何が問題なのかある程度検討はつきますでしょうか?
うーん、こちらの画像だけだと原因は分かりません
私の環境でもアップしていただいた画像のような描画結果になってしまうか確認して
みたいと思いますので、よろしければアップしていただいた画像のプログラムを掲示板に
書き込んでいただけないでしょうか? m(_ _)m
|
Re: DrawCube3Dが非常に遅い ( No.13 ) |
- 名前:Marshal 日時:2020/07/22 10:19
管理人様
下記のオンラインストレージにsample.txtをアップロードさせて頂きました。
ご確認のほど、何卒宜しくお願い致します。
ttps://firestorage.jp/download/83a912463ed518152d5b291575f87eeebd263dea
ファイル名:sample.txt
|
Re: DrawCube3Dが非常に遅い ( No.14 ) |
- 名前:管理人 日時:2020/07/24 02:29
アップしていただいたファイルを確認しました
すみません、プログラムの一部分だけではなく、実行に必要な
プログラム全体を頂けないでしょうか? m(_ _;m
|
Re: DrawCube3Dが非常に遅い ( No.15 ) |
- 名前:Marshal 日時:2020/07/27 09:25
管理人様
了解しました。
ただプロジェクト自体が非常に巨大なため、本内容に必要な個所のみを抽出し、新たに作成したものをアップさせて頂きます。
以上、お手数をお掛けしますが宜しくお願い致します。
|
Re: DrawCube3Dが非常に遅い ( No.16 ) |
- 名前:管理人 日時:2020/07/29 00:57
こちらこそお手数をお掛けしてすみません
抽出版のプログラムをお待ちしております m(_ _;m
|