Stripify Mesh
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- cpp
- Domain
- computer-graphics
Research direction
Start by locating OptimizeFaces and the existing index-buffer topology handling in the DirectXMesh codebase. Review the linked triangle-strip references and determine the intended API and conversion behavior. Done means triangle-list index buffers can be converted to triangle strips while preserving the mesh correctly; no test file is named in the issue.
Written by the indexing model from the issue text.
Description
The original D3DX mesh optimize function supported an option for stripifying D3DXMESHOPT_STRIPREORDER. We support this with OptimizeFaces (passing 0 for the vertexCache size), but the resulting IB is still a triangle list as was the case in the original D3DX library.
This proposed function would convert index buffers from D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST to D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP. See Wikipedia
On older generation GPU hardware, using triangle strips over triangle lists was a performance win. This is no longer true on modern GPUs even mobile platforms. While it does result in slightly smaller indices, it is generally far more useful to use triangle lists and optimized for vertex cache reuse. The main reason to include this functionality in DirectXMesh is for completeness and for creating performance references.
Stewart, J. "Tunneling for Triangle Strips" PDF
Evans, F., Skiena, S., Varshney, A.; "Optimizing triangle strips for fast rendering", Visualization 1996. PDF
Akeley, K., Haeberli, P., Burns, D.; tomesh.c. C Program on SGI Developer's Toolbox CD, 1990
- Dominant language
- C++
- Stars
- 860
- Forks
- 169
- Avg merge
- 9h 49m
- Merged PRs (30d)
- 4
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/DirectXMesh
-
Project feedback Open
Difficulty 5/5 Over a week Newbie friendliness 15/100
microsoft/DirectXMesh#308 ·
-
utility
Difficulty 3/5 1-2 days Newbie friendliness 45/100
microsoft/DirectXMesh#229 ·
-
optimization
Difficulty 5/5 Over a week Newbie friendliness 15/100
microsoft/DirectXMesh#116 ·
-
tools
Difficulty 4/5 3-5 days Newbie friendliness 35/100
microsoft/DirectXMesh#76 · 2 comments ·
-
utility
Difficulty 3/5 1-2 days Newbie friendliness 35/100
microsoft/DirectXMesh#75 ·
All issues in microsoft/DirectXMesh
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
AXERA-TECH/ax-llm#77 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
games-on-whales/wolf#509 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
bug-unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
NVIDIA/cuda-samples#453 ·