[Gabriel Gambetta] biết một số điều về công cụ dò tia, là tác giả của Tiny Raytracer, một công cụ dò tia được viết chỉ bằng 912 byte JavaScript. Như một thời gian dài đồng bào nạn nhân của ZX Spectrum do Anh thiết kế, liệu hai mối tình này có thể hợp nhất được không? Tiny Raytracer có thể phù hợp với ZX Spectrum không? Trong BASIC? Câu trả lời là một lời khẳng định, mặc dù có nhiều hạn chế đối với loài vật yêu quý của chúng ta.
Câu chuyện bắt đầu với [Gabriel] Thuật toán raytracer đồ họa máy tính từ đầu (CGFS) và cơ sở mã hiện có đã được chuyển sang phương ngữ BASIC rất hạn chế của ZX Spectrum, sử dụng VSCode để chỉnh sửa, BAS2TAP để tạo một tệp hình ảnh băng (về cơ bản là một đoạn âm thanh) và được thực thi với FUSE. Với chuỗi công cụ được sắp xếp, [Gabriel] thêm mã vừa đủ để xử lý các phương trình giao nhau tia của hình cầu và hiển thị cảnh ba hình cầu thành hình ảnh màu 32 × 22 pixel, chỉ mất 15 phút thời gian chạy. Những người đau khổ sẽ nhớ quang phổ có mảng thuộc tính khối 32 × 22 (hoặc mảng màu) với hai giá trị màu cho các pixel nền trước và nền sau. Mỗi khối thuộc tính chứa 8 × 8 pixel, mỗi pixel có thể là nền trước (bật) hoặc nền (tắt.). Giai đoạn tiếp theo là mở rộng mã để xử lý pixel cũng như các khối, bằng cách chỉ cần mở rộng dò tia lên toàn bộ 256 Độ phân giải ×176 và đối với mỗi khối, chỉ cần xác định hai màu phổ biến nhất và chạy với các màu đó cho toàn bộ khối. Nó hoạt động theo kiểu 'xung đột thuộc tính' rất phổ biến.
Nhưng bây giờ thời gian chạy là 17 giờ! Tiếp theo, một điểm tinh chỉnh hiệu suất, sử dụng khá nhiều thủ thuật BASIC phổ và một số phép tính gần đúng về đồ họa, chẳng hạn như truyền tia cho từng pixel góc của khối và nếu chúng giống hệt nhau, hãy tô màu tất cả 60 pixel còn lại giống nhau và tiếp tục . Nỗ lực này đã giảm thời gian chạy xuống còn hai giờ.
Tiếp theo [Gabriel] dũng cảm từ bỏ mô hình chiếu sáng phẳng, tạo mô hình một nguồn sáng duy nhất và thực hiện thủ thuật duy nhất còn lại trong thế giới quang phổ đơn sắc, đó là phối màu các giá trị cường độ cho mỗi khối, bằng cách sử dụng một phương pháp đơn giản. mẫu hoà sắc có thứ tự 8×8, điều đó có vẻ không quá tệ, xét trên mọi khía cạnh. Một điểm dừng nhanh trên đường hoàn thành, để thêm bóng và thời gian chạy quay lại 17 giờ, nhưng nó đáng giá. Rõ ràng, điều này được tối ưu hóa cho một loại cảnh duy nhất, loại cảnh có hình cầu chủ yếu, nhưng các nguyên tắc vẫn có sẵn và các hình khối chỉ còn một vài dòng mã nữa. Có người nhận không?
Raytracing là một trong những nhiệm vụ thú vị nhưng phức tạp mà mọi người thích đưa vào phần cứng không phù hợp, như máy tính vẽ đồ thị TI-84Plus CE này, và nếu mục đó hơi khó truy cập thì đây là thứ gì đó điên rồ không kém chạy trong Excel cũ.
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoData.Network Vertical Generative Ai. Trao quyền cho chính mình. Truy cập Tại đây.
- PlatoAiStream. Thông minh Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Trung tâmESG. Than đá, công nghệ sạch, Năng lượng, Môi trường Hệ mặt trời, Quản lý chất thải. Truy cập Tại đây.
- PlatoSức khỏe. Tình báo thử nghiệm lâm sàng và công nghệ sinh học. Truy cập Tại đây.
- nguồn: https://hackaday.com/2024/01/26/a-zx-spectrum-raytracer-in-basic/
- :là
- :Ở đâu
- 1
- 15%
- 17
- 400
- 60
- a
- Giới thiệu
- truy cập
- Thêm
- Giao
- Tất cả
- an
- và
- trả lời
- bất kì
- LÀ
- Mảng
- AS
- âm thanh
- tác giả
- xa
- trở lại
- lý lịch
- Bad
- cơ sở
- cơ bản
- BE
- được
- yêu dấu
- Một chút
- Chặn
- Khối
- nhưng
- by
- đúc
- Rõ ràng
- mã
- cơ sở mã
- Chung
- hoàn thành
- phức tạp
- xem xét
- chứa
- Corner
- có thể
- nhiều
- Xác định
- Mương
- Không
- mỗi
- chỉnh sửa
- nỗ lực
- đủ
- như nhau
- phương trình
- chủ yếu
- Ether (ETH)
- Thực thi
- hiện tại
- Mở rộng
- mở rộng
- Thời trang
- Đặc tính
- đồng bào
- vài
- Tập tin
- phù hợp với
- bằng phẳng
- Trong
- từ
- Full
- vui vẻ
- tạo ra
- đồ họa
- hacks
- có
- xử lý
- Cứng
- phần cứng
- GIỜ LÀM VIỆC
- HTML
- HTTPS
- giống hệt nhau
- if
- hình ảnh
- in
- ngã tư
- trong
- IT
- JavaScript
- chỉ
- Loại
- biết
- ánh sáng
- Thắp sáng
- Hạn chế
- dòng
- Xem
- yêu
- nhiều
- max-width
- bộ ba
- phút
- kiểu mẫu
- mô hình
- đơn sắc
- chi tiết
- hầu hết
- di chuyển
- net
- tiếp theo
- tại
- of
- off
- Xưa
- on
- ONE
- có thể
- Tối ưu hóa
- or
- vfoXNUMXfipXNUMXhfpiXNUMXufhpiXNUMXuf
- ra
- người
- hiệu suất
- điểm ảnh
- Trơn
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- chủ yếu
- chính
- nguyên tắc
- Kéo
- Nhanh chóng
- khá
- RAY
- có hi vọng
- Giảm
- còn lại
- nhớ
- Trình bày
- Độ phân giải
- chạy
- tương tự
- bối cảnh
- xước
- Đơn giản
- đơn giản
- duy nhất
- một số
- một cái gì đó
- nguồn
- quang phổ
- hình cầu
- Spot
- Traineeship
- bắt đầu
- Dừng
- Câu chuyện
- như vậy
- người nhận
- dùng
- băng
- nhiệm vụ
- việc này
- Sản phẩm
- Khối
- sau đó
- Đó
- Kia là
- điều
- điều này
- những
- thời gian
- đến
- quá
- Truy tìm
- theo dõi
- tinh chỉnh
- hai
- kiểu
- sử dụng
- Các giá trị
- rất
- là
- Đường..
- TỐT
- cái nào
- toàn bộ
- Wikipedia
- sẽ
- với
- công trinh
- thế giới
- giá trị
- viết
- zephyrnet