[Gabriel Gambetta]는 단 912바이트의 JavaScript로 작성된 Raytracer인 Tiny Raytracer의 저자로서 Ray Tracer에 대해 몇 가지 알고 있습니다. 오랫동안 사람 영국이 디자인한 ZX Spectrum의 피해자, 이 두 가지 사랑이 합쳐질 수 있을까요? Tiny Raytracer가 ZX Spectrum에 맞을 수 있습니까? 베이직에서? 정답은 우리가 사랑하는 종의 많은 한계에도 불구하고 긍정적입니다..
이야기는 [가브리엘]의 이야기로 시작됩니다. CGFS(컴퓨터 그래픽 처음부터 시작) 레이트레이서 알고리즘 편집을 위해 VSCode를 사용하여 ZX Spectrum의 매우 제한된 BASIC 방언으로 포팅된 기존 코드 베이스, BAS2TAP 테이프 이미지 파일(기본적으로 오디오 트랙)을 생성하고 다음과 같이 실행합니다. 퓨즈. 툴체인이 정렬된 상태에서 [Gabriel]은 구의 광선 교차 방정식을 처리하기에 충분한 코드를 추가하고 32개의 구 장면을 22×15 픽셀 컬러 이미지로 렌더링하며 단 32분의 런타임만 소요됩니다. 동료 환자들은 스펙트럼에 전경 및 배경 픽셀에 대한 두 가지 색상 값이 있는 22×8 블록 속성 배열(또는 색상 배열)이 있다는 것을 기억할 것입니다. 각 속성 블록에는 8×256 픽셀이 포함되어 있으며 각 픽셀은 전경(켜짐) 또는 배경(꺼짐)이 될 수 있습니다. 그런 다음 다음 단계는 단순히 광선 추적을 전체 176으로 확장하여 픽셀과 블록을 처리하도록 코드를 확장하는 것이었습니다. ×XNUMX 해상도, 각 블록에 대해 가장 일반적인 두 가지 색상을 결정하고 전체 블록에 대해 해당 색상을 실행합니다. 그것은 매우 스펙트럼적인 '속성 충돌' 방식으로 작동합니다.
하지만 이제 런타임은 17시간입니다! 다음으로, 몇 가지 스펙트럼 BASIC 핵을 사용하고 블록의 각 모서리 픽셀에 광선을 캐스팅하는 것과 같은 일부 그래픽 근사치를 사용하여 성능을 조정하는 지점입니다. 동일한 경우 나머지 60픽셀을 모두 동일하게 색칠하고 계속 진행합니다. . 이러한 노력으로 런타임이 XNUMX시간으로 단축되었습니다.
다음 [Gabriel]은 평면 조명 모델을 용감하게 버리고 단일 광원을 모델링한 후 단색 스펙트럼 세계에 남아 있는 유일한 트릭인 각 블록의 강도 값을 디더링하는 트릭을 간단한 방법을 사용하여 꺼냅니다. 8×8 순서 디더 패턴, 모든 것을 고려하면 그다지 나쁘지는 않은 것 같습니다. 완성을 향한 길에 잠시 멈춰서 그림자 추가 실행시간이 17시간으로 돌아왔지만 그만한 가치가 있습니다. 분명히 이것은 구체가 주로 특징이지만 원칙은 있고 큐브는 코드 몇 줄만 더 있으면 되는 단일 장면 유형에 최적화되어 있습니다. 받는 사람이 있나요?
레이트레이싱은 사람들이 부적절한 하드웨어에 끼워 넣는 것을 좋아하는 재미있지만 복잡한 작업 중 하나입니다. TI-84Plus CE 그래프 계산기처럼요, 접근하기가 조금 어렵다면, 여기도 마찬가지로 미친 일이 있습니다. 일반 Excel에서 실행 중.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoData.Network 수직 생성 Ai. 자신에게 권한을 부여하십시오. 여기에서 액세스하십시오.
- PlatoAiStream. 웹3 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 플라톤ESG. 탄소, 클린테크, 에너지, 환경, 태양광, 폐기물 관리. 여기에서 액세스하십시오.
- PlatoHealth. 생명 공학 및 임상 시험 인텔리전스. 여기에서 액세스하십시오.
- 출처: https://hackaday.com/2024/01/26/a-zx-spectrum-raytracer-in-basic/
- :이다
- :어디
- 1
- 15%
- 17
- 400
- 60
- a
- 소개
- ACCESS
- 추가
- 사무
- All
- an
- 및
- 답변
- 어떤
- 있군요
- 배열
- AS
- 오디오
- 저자
- 떨어져
- 뒤로
- 배경
- 나쁜
- 기지
- 기본
- BE
- 존재
- 가장 사랑하는
- 비트
- 블록
- 블록
- 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만
- by
- 캐스트
- 명확하게
- 암호
- 코드베이스
- 공통의
- 완성
- 복잡한
- 고려
- 이 포함되어 있습니다
- 모서리
- 수
- 거래
- 결정
- 도랑
- 하지 않습니다
- 마다
- 편집
- 노력
- 충분히
- 균일하게
- 방정식
- 본질적으로
- 에테르 (ETH)
- 처형 된
- 현존하는
- 펼치기
- 확대
- 패션
- 특색
- 사람
- 를
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 맞게
- 플랫
- 럭셔리
- 에
- 가득 찬
- 장난
- 생성
- 그래픽
- 해킹
- 했다
- 핸들
- 하드
- 하드웨어
- 진료 시간
- HTML
- HTTPS
- 같은
- if
- 영상
- in
- 교차
- 으로
- IT
- 자바 스크립트
- 다만
- 종류
- 알고있다
- 빛
- 조명
- 제한된
- 라인
- 보기
- 애정
- .
- 최대 폭
- 호수
- 분
- 모델
- 모델
- 흑백의
- 배우기
- 가장
- 움직이는
- 그물
- 다음 것
- 지금
- of
- 오프
- 낡은
- on
- ONE
- 만
- 최적화 됨
- or
- 우리의
- 아웃
- 사람들
- 성능
- 픽셀
- 평원
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 주로
- 일차
- 원칙
- 했었어요
- 빠른
- 아주
- RAY
- 레이트 레이싱
- 감소
- 나머지
- 기억
- 렌더링
- 분해능
- 달리기
- 같은
- 장면
- 할퀴다
- 단순, 간단, 편리
- 간단히
- 단일
- 일부
- 무언가
- 출처
- 스펙트럼
- 구체
- Spot
- 단계
- 시작
- 중지
- 이야기
- 이러한
- 수취인
- 복용
- 테이프
- 작업
- 그
- XNUMXD덴탈의
- 블록
- 그때
- 그곳에.
- Bowman의
- 일
- 이
- 그
- 시간
- 에
- 너무
- 트레이싱
- 선로
- 조정
- 두
- 유형
- 사용
- 마케팅은:
- 대단히
- 였다
- 방법..
- 잘
- 어느
- 모든
- 위키 백과
- 의지
- 과
- 일
- 세계
- 가치
- 쓴
- 제퍼 넷