RepositoryC
xms0g

xms0g/3Dos

A low-poly 3D renderer for MS-DOS

90sao
1fork
0issue
0lượt xem

🕹️ 3DOS — Bộ render 3D low-poly đậm chất retro trên MS-DOS

Một bộ render 3D phần mềm low-poly hoạt động trên MS-DOS, dùng C và x86 assembly, tận dụng VGA mode 13h với độ phân giải 320x200.

3DOS là một dự án render 3D low-poly theo phong cách cũ cho MS-DOS, được viết bằng ngôn ngữ C kết hợp x86 assembly. Dự án hướng đến việc chạy trên VGA mode 13h với độ phân giải 320x200, mang lại trải nghiệm đồ họa 3D thời cổ thông qua các kỹ thuật software rendering truyền thống. Được xây dựng bằng Borland Turbo C++ 3.0 và Turbo Link 5.0, 3DOS thích hợp cho các bạn đam mê retrocomputing và lập trình đồ họa thấp cấp.

✨ Điểm nổi bật

  • Rasterization tam giác: Hỗ trợ vẽ hình tam giác trong không gian 3D.
  • Chiếu phối cảnh 3D: Áp dụng phép chiếu phối cảnh để tạo chiều sâu thực tế.
  • Toán học vector/ma trận đơn giản: Sử dụng bảng tra cứu sin/cos (LUT) để tối ưu tính toán.
  • Backface culling: Loại bỏ các mặt không nhìn thấy để tăng hiệu suất.
  • Dithering có thứ tự: Sử dụng ma trận Bayer 4x4 để cải thiện chất lượng màu sắc.
  • Double buffering: Tránh hiện tượng nhấp nháy khi vẽ hình.
  • Tối ưu assembly: Dùng lệnh REP MOVSW với con trỏ xa để sao chép pixel đến bộ nhớ VGA.
  • Nhập bàn phím cấp thấp: Xử lý ngắt tùy chỉnh với phát hiện nhấn và nhả phím.

💡 Vì sao đáng chú ý

3DOS nổi bật bởi sự kết hợp giữa lập trình C và x86 assembly, tận dụng tối đa hiệu năng trên nền tảng MS-DOS. Dự án không chỉ mang lại trải nghiệm lập trình đồ họa thất thực mà còn là minh chứng cho sự sáng tạo trong lập trình phần cứng thấp cấp. Với các tính năng như backface culling, dithering và double buffering, 3DOS cung cấp một nền tảng vữ chắc cho các dự án đồ họa 3D retro.

Phù hợp với cộng đồng đam mê retrocomputing, lập trình viên muốn khám phá kỹ thuật software rendering truyền thống, cũng như các game developer quan tâm đến phát triển game độ phân giải thấp với phong cách nghệ thuật low-poly.


#MS-DOS #Retrocomputing #SoftwareRenderer #3DGraphics #x86Assembly #TiniX

Dự án tương tự

Khám phá các dự án và mô hình AI khác có sự tương đồng.

RepositoryC
SuperIlu/jSH

A Javascript scripting engine for DOS

145
Dec 14, 2025
RepositoryC++
dosbox-staging/dosbox-staging

DOSBox Staging is a modern continuation of DOSBox with advanced features and current development practices.

1.8k
Oct 20, 2026
RepositoryTypeScript
dosasm/masm-tasm

run and debug TASM/MASM code in VSCode via JSDos, DOSBox and DOSBox-x. compatiable for web platform

185
Oct 7, 2026
RepositoryC
alexfru/SmallerC

Simple C compiler

1.6k
Dec 22, 2024
RepositoryC
sdima1357/esp32_usb_soft_host

ESP32 software USB host through general IO pins. We can connect up to 4 USB-LS HID (keyboard mouse joystick) devices simultaneously.

495
Feb 23, 2025
RepositoryC
sdima1357/esp32_usb_soft_host

ESP32 software USB host through general IO pins. We can connect up to 4 USB-LS HID (keyboard mouse joystick) devices simultaneously.

495
Feb 23, 2025
RepositoryC
dmsc/emu2

Simple x86 and DOS emulator for the Linux terminal.

467
Jul 4, 2026
RepositoryC
Fabrizio-Caruso/CROSS-LIB

CROSS LIB - A universal 8-bit library and some games built with it

372
Oct 20, 2026
RepositoryC
dosemu2/fdpp

FreeDOS plus-plus, 64bit DOS

246
Oct 21, 2026