I'm looking for an efficient way to display lots of spheres using directx 11. The spheres are defined by (x,y,z,r) where (x,y,z) are coordinates in space and r is the radius. I want to display only the spheres that can be seen, meaning that spheres that are not in the field of view and spheres that are too small to be seen wouldn't be drawn. However, if a group of spheres smaller than one pixel is at least as big as one pixel, then I want to display the most predominant color. Spheres have only one color and different levels of transparency. Any help would be appreciated and incomplete answers are acceptable.
Directx 11 spheres
1.3k Views Asked by AudioBubble At
1
There are 1 best solutions below
Related Questions in GEOMETRY
- Generating a sphere in OpenGL without high level libraries - what's wrong with my code?
- Matrix (?) to Rectangle and vise versa
- Turn a button into a loading circle animation
- Find a longitude given a pair of (lat,long) and an offset latitude
- 2D perspective transform in JavaScript
- how to convert Oracle geometry to SQL GEOMETRY
- Overlapping Rectangles Javascript
- Detect hole in geometry
- Reversing RotateAxisAngle back to angles
- WPF: 2 string.format in the same TextBlock?
- Quaternion to EulerXYZ, how to differentiate the negative and positive quaternion
- How to find a point given its distance from two other points?
- Ray/Rectangle intersection in 3D space
- Pairs of points on a graph
- Android OpenCV Detecting Circles takes too much FPS
Related Questions in DIRECTX-11
- Creating a Texture2DArray and populate it with solid values
- Normals are not transfered to DirectX 11 shader correctly - random, time-dependent values?
- XMVector3Unproject - Screen to world coordinate at specific Z
- HLSL Geometry Shader empty output
- CheckMultisampleQualityLevels(...) says the card does not support MSAA (which is not true for e.g. my GeForce GTX 780)?
- Does Windows 7 with platform update support desktop duplication?
- Getting run time error when moving variable to header file
- Rendering in DirectX 11
- Fill CubeTexture with data
- C++/CX Header file can't find Microsoft namespace
- DirectX shader linking error
- DXGI flip model locked to vsync
- Error LNK2019 with creating DirectX11
- NAudio and DirectX 12
- Moving and Imported model along the forward Vector - DirectX11 C++
Related Questions in CULLING
- JavaFx 3D - Display large amount of TriangleMeshes
- Is there a faster way to make this angle comparision?
- Directx 11 spheres
- 3d Occlusion Culling
- Conservatively cover bitmap with small number of primitives?
- Early stencil culling
- How to do frustum culling in OpenGL with the view and projection matrix?
- Frustum culling with VBOs
- Three.js Unculled SkyBox
- OpenGL : Line jittering with large scene and small values
- OpenGL is not culling faces properly when drawing OBJ model
- How to integrate indirect draw, instanced rendering and gpu occlusion culling in OpenGL
- 3D Computer Graphic Animation : Back-Face Culling not working properly
- Orthographic 3D Backface Culling using Surface Normals
- Extracting View Frustum Planes (Gribb & Hartmann method)
Related Questions in FRUSTUM
- Three.js, center camera to view all objects that is in the scene
- Computing the Bounding Sphere for a 3D Mesh in Python
- Directx 11 spheres
- glFrustum, gluPerspective and FOV
- setting up frustum in iphone
- How to create Frustum in DXF format for Autocad?
- OpenGL Frustum visibility test with sphere : Far plane not working
- How to do frustum culling in OpenGL with the view and projection matrix?
- Why use frustum in OpenGL on top of simple projection?
- How know which particles of a particlesystem are in the frustum
- How to draw only visible data XNA My method doesn't work
- Frustum culling with VBOs
- Coordinates of frustum corners
- From gluOrtho2D to 3D
- OpenGL : Line jittering with large scene and small values
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
You need several things. First an indexed unit sphere geometry, second a buffer to store the sphere instance properties ( position, radius and color ) and third a small buffer for the API parameters yet to come. The three combines in a single 'ID3D11DeviceContext::DrawIndexedInstancedIndirect'
The remaining question is "how to feed the instance buffer ?". cpu is easy, just apply frustum culling, sort back to front because of the transparency and apply a merge based on the screen projection, update the buffer and use 'ID3D11DeviceContext::DrawIndexedInstanced'.
gpu version will do the same thing with compute shaders but will be harder to implement. The advantage, zero cpu/gpu synchronization and should support far more instance.