게임보이 컬러에 실시간 3D 셰이더를 적용했습니다
I put a real-time 3D shader on the Game Boy Color
139 pointsby adunk2026. 2. 8.9 comments
원문 보기 (blog.otterstack.com)요약
이 프로젝트는 게임보이 컬러에 구현된 실시간 3D 셰이더를 보여줍니다. 노멀 맵, 구면 좌표, 사용자 정의 수학 파이프라인을 활용하여 게임보이의 제한된 처리 능력과 곱셈 명령어 부재를 극복합니다. 이 시스템은 로그 및 조회 테이블을 사용하여 계산을 수행하며, 원본 하드웨어의 제약 조건 내에서 기능적인 3D 렌더링 효과를 달성합니다.
댓글 (8)
ndgold•2시간 전
I can’t believe it
speps•2시간 전
Awesome looking results. As far as I understand it's a "3D" shader in the sense that it looks 3D but it's a prerendered 2D normal map which is then lit using the resulting world space normal.
Here are the frames: https://github.com/nukep/gbshader/tree/main/sequences/gbspin...
glouwbug•2시간 전
It’s nice getting real hacker material on hackernews
villgax•2시간 전
This is why HN exists, almost gives me the same joy as flipping through tech magazines of yester-decades.
a_t48•1시간 전
Nice, I’ll have to give this a try on my Analogue Pocket
spacebacon•1시간 전
This GBC shader reveals a key truth: all computation is approximation under constraint. Multiplication becomes table lookups plus addition, while precision yields to what the eye actually sees.
wasmainiac•1시간 전
> An overall failed attempt at using AI
> I attempted to use AI to try out the process, mostly because 1) the industry won't shut up about AI, and 2) I wanted a grounded opinion of it for novel projects, so I have a concrete and personal reference point when talking about it in the wild. At the end of the day, this is still a hobbyist project, so AI really isn't the point! But still...
> I believe in disclosing all attempts or actual uses of generative AI output, because I think it's unethical to deceive people about the process of your work. Not doing so undermines trust, and amounts to disinformation or plagiarism. Disclosure also invites people who have disagreements to engage with the work, which they should be able to. I'm open to feedback, btw.
Thank you for your honesty! Also tremendous project.
Sharlin•1시간 전
The "Making it work" section seems to abruptly end at the following?
By modifying the instruction operand!
2A ld a, [hl+]
D6 08 sub a, 8