[FEATURE] Improve line rendering on higher resolutions
I maintainer di solito rispondono entro 4 giorni
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- computer-graphics
Direzione di ricerca
The issue names no files, tests, or entry points. Start by locating the existing line-rendering implementation and compare its OpenGL, WebGL, Vulkan, and Metal paths with the linked instanced-lines article. Done should include resolution-scaled lines with appropriate joints and end caps across the supported rendering backends.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Currently, projectM implements the exact same line rendering technique as Milkdrop. It renders either a single, 1px-wide line or four 1px-wide lines in a 2x2 raster for thick/bold lines. There are a few issues with the current implementation, from which Milkdrop also suffers:
- Line anti-aliasing is not a guaranteed feature, e.g. it's basically only available on desktop platforms and if the line is only 1px wide.
- The line with always stays the same, regardless of the rendering resolution, meaning that the higher the resolution gets, there is less and less brightness/color added to the image overall. This causes many presets to become darker or almost black on 4K+ screens, while very small resoutions will be way too bright.
- Vulkan/Metal don't support line rendering with the optional
VK_EXT_line_rasterizationextension.
Ideally, line width should scale smoothly with the rendering resolution, e.g. 1px width (or 2px for thick lines) at 1000px. such lines would then render 4px/8px wide on 4K resolutions, covering about the same percentage of image pixels overall.
One feasible approach would be implementing a technique suggested by this article, which will also work fine for OpenGL and WebGL. This will also take care of line joints and end caps to look nice, e.g. shapes can use miter joints while waveforms should ideally be rendered with round joints and end caps.
- Lingua principale
- C++
- Stelle
- 4.5k
- Fork
- 496
- Merge medio
- 3g 14h
- PR unite (30g)
- 4
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di projectM-visualizer/projectm
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
projectM-visualizer/projectm#1055 ·
I maintainer di solito rispondono entro 4 giorni
-
Out-of-bounds write in HLSLTokenizer::Next() when a preset shader identifier exceeds 255 charactersApertabug triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
projectM-visualizer/projectm#1053 ·
I maintainer di solito rispondono entro 4 giorni
-
[DEV BUG] HLSLParser does not support comma operator in for loop increment statementsForse già presa @r3wretrhy l’ha presa 3 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
projectM-visualizer/projectm#1043 ·
I maintainer di solito rispondono entro 4 giorni
-
[FEATURE]Apertaenhancement triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
projectM-visualizer/projectm#1051 ·
I maintainer di solito rispondono entro 4 giorni
-
question
Difficoltà 4/5 3-5 giorni Idoneità per principianti 34/100
projectM-visualizer/projectm#1046 · 2 commenti ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di projectM-visualizer/projectm
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
KhronosGroup/Vulkan-Tutorial#534 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 2 giorni
-
bug IO
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
MrNeRF/LichtFeld-Studio#3824 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
throneproj/Throne#2043 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
Perchik71/Creation-Kit-Platform-Extended#267 ·
I maintainer di solito rispondono entro 1 giorno