Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
86 Views

Difference of drawing result depending on GPU

I created a simple application to clip a cube using DirectX 9.0, but the GPU makes a difference in drawing results.
(The drawing of a cube sets D3DRS_FILLMODE to D3DFILL_WIREFRAME.)

The difference between the drawing results is whether or not the intersection lines of the clip plane and the cube is drawn.
When using the NVIDIA Quadro K2200, intersection lines are drawn, but when using Intel UHD Graphics 620, intersection lines are not drawn.

[NVIDIA Quadro K2200]
NVIDIA.png

[Intel UHD Graphics 620]
Intel.png

I think it is a GPU-dependent problem, but I do not know the cause.
I want to know why drawing results are different and how to draw intersection lines with Intel UHD Graphics 620.

[System Information 1]
 [OS]
  Microsoft Windows 10 Pro
  10.0.17763
 [GPU]
  NVIDIA Quadro K2200
  25.21.14.1917

[System Information 2]
 [OS]
  Microsoft Windows 10 Pro
  10.0.17134
 [GPU]
  Intel(R) UHD Graphics 620
  23.20.16.5018


===
DirectX 9.0を利用し立方体をクリッピングする
簡単なアプリケーションを作成したのですが、
GPUによって描画結果が異なります。
(立方体はD3DRS_FILLMODEをD3DFILL_WIREFRAMEで描画しています)

描画結果の違いは、クリップ平面と立方体の交線が描画されるか否かです。
NVIDIA Quadro K2200を利用している場合は交線が描画され、
Intel UHD Graphics 620を利用している場合は交線が描画されません。

GPU依存の問題だと思うのですが、詳細な原因がわかりません。
何故描画結果が異なるのか、Intel UHD Graphics 620で交線を
描画する方法を知りたいです。

0 Kudos
1 Reply
Highlighted
Beginner
86 Views

Two things to check for now.

Some graphics processors might require exact mesh coordinates that are in non-floating-point form. Please check your code (or mesh points) and make certain that you are not using any floating points in your final mesh coordinates.

Some graphics processors might attempt to close a mesh on their own, I guess as a "help". Please check your mesh and make certain that you do not have any holes in your mesh. Maybe run the mesh through a virtual 3d graphics mesh editor and tell it to close the holes and try that. But, closing holes via some mesh editors might create a bad mesh shape, so check the final closed mesh yourself.

Some graphics processors might not attempt to fix or repair meshes, and might try to work with however extended any floating points are, and simply process what you send to them and then you get out what you put in and any mistakes on the final product are your's and your's alone. From looking at your renderings, I expect that this is what is happening.

Suggestions:

Start with a single triangle mesh, not a closed mesh, and see if you can render that.

Then add one triangle to the mesh at a time until you are certain that you have a box that is closed, and see if you can render that.

Work from there.

 

0 Kudos