Some questions after reading some source codes

Aperta
#348 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Documentazione
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp
Ambito
backend, data

Direzione di ricerca

Start with basisu_frontend::compress() and init_etc1_images(), then trace how ETC1S data is encoded and how RDO-UASTC data is written to Basis and KTX2 files. The issue asks for an explanation of these formats and ETC1S endpoint and selector quantization, but names no documentation file or tests. Done means providing a clear, source-backed answer to both questions; the issue has had no comments for over three years.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

  1. When use Rdo-uastc mode to compress, some selector datas(it seems like the texel weight data in astc block?) in uastc blocks would be replaced by other selector datas in previous blocks, and when saving to a .basis file, those uastc blocks would be saved directly in the memory of this .basis file, so that gpu could use this texture by the implied astc decoder inside . However, when it comes to .ktx2 file, zstd would be used to pack the compressed blocks futhermore & loselossly, and then those zstd-compressed texture would be save into a .ktx2 file, which gpu can't decode. Is my thought above right?
    image
  2. How does etc1s stream be supercompressed? I saw basisu_frontend::compress() make source into etc1s blocks, I don't know why they can be supercompressed after init_etc1_images(). Is there any doc to explain the way to quantize ETC1S endpoints & selectors?
    This repo is amazing, but i'm too naive to understand every amazing things inside. An astc bit format can beat me easily already.
Lingua principale
C++
Stelle
3.1k
Fork
347
Merge medio
4g 3h
PR unite (30g)
1

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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di BinomialLLC/basis_universal

Tutte le issue di BinomialLLC/basis_universal

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.