Skip to content

scanline: s\u0131f\u0131rdan software rasterizer - #1

Merged
umutseve4 merged 4 commits into
mainfrom
renderer
Sep 5, 2026
Merged

umutseve4 merged 4 commits into
mainfrom
renderer

Conversation

@umutseve4

Copy link
Copy Markdown
Owner

Ne var bu PR'da

WebGL kullanmayan, ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 olmayan bir software rasterizer. Her piksel d\u00fcz JavaScript'te hesaplan\u0131yor; canvas sadece putImageData i\u00e7in kullan\u0131l\u0131yor.

Pipeline: vertex transform \u2192 near-plane clipping (Sutherland\u2013Hodgman, homojen uzayda) \u2192 perspective divide \u2192 backface cull \u2192 edge-function scan \u2192 perspective-correct interpolation \u2192 z-buffer \u2192 3\u00d73 PCF shadow map \u2192 Blinn-Phong + hemisphere ambient + fresnel rim \u2192 ACES tonemap + gamma 2.2.

Dosyalar

  • src/math.js, src/framebuffer.js, src/geometry.js \u2014 matematik, render hedefleri, prosed\u00fcrel mesh'ler
  • src/raster.js \u2014 rasterizer \u00e7ekirde\u011fi
  • src/scene.js \u2014 sahne, \u0131\u015f\u0131k, g\u00f6lge pass'i, shading
  • src/main.js + index.html \u2014 etkile\u015fimli aray\u00fcz (orbit, HUD, 4 render modu, wireframe, \u00e7\u00f6z\u00fcn\u00fcrl\u00fck/pozlama kontrol\u00fc, PNG kaydet)
  • tools/*.mjs \u2014 headless render, PNG encoder, testler, tek-dosya build ve bundle do\u011frulama
  • .github/workflows/ \u2014 CI ve Pages deploy

Do\u011frulama

npm run ci \u015funlar\u0131 s\u0131ras\u0131yla \u00e7al\u0131\u015ft\u0131r\u0131r:

| Ad\u0131m | Ne kan\u0131tl\u0131yor |\n| --- | --- |\n| test | 18 matematik assertion'\u0131 (projeksiyon near/far e\u015fleme, normalMatrix ortogonalli\u011fi, tekil matris fallback'i) |\n| still | Headless kare render edilir; \u00fc\u00e7gen/fragment say\u0131s\u0131, parlakl\u0131k ve kapsama e\u015fikleri kontrol edilir \u2014 siyah kare CI'\u0131 d\u00fc\u015f\u00fcr\u00fcr |\n| modes | D\u00f6rt render modunun hash'i farkl\u0131 m\u0131 |\n| build | Alt\u0131 ES mod\u00fcl\u00fc tek HTML'e g\u00f6m\u00fcl\u00fcr; artakalan import/export varsa hata |\n| verify | \u00dcretilen bundle Node vm i\u00e7inde DOM stub'\u0131yla \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r; putImageData'ya giden ger\u00e7ek pikseller yakalan\u0131p kapsama/luma e\u015fi\u011fi denetlenir |

Yerel \u00f6l\u00e7\u00fcm (1000\u00d7620, 20.485 \u00fc\u00e7gen, 556.189 fragment): shadow ~36 ms, geometry ~174 ms, resolve ~57 ms.

Copilot AI lite review requested due to automatic review settings September 5, 2026 19:55

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@umutseve4
umutseve4 merged commit 42cf070 into main Sep 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants