ReanGD / rust-software-render

Software Render

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

rust-software-render

master Build Status Build status

Подготовка окружения

Для сборки проекта у вас должны стоять:

  • компилятор Rust (для Windows тестируется только stable версия, для Linux: nightly, beta, stable)
  • менеджер пакетов для rust - Cargo

Для Windows необходимо добавить папку с rustc и cargo в PATH

Дополнительные пакеты

Требуется установить библиотеку sdl2 и sdl2_image.

Для Arch-Linux ставится вот так:

sudo pacman -S sdl2 sdl2_image

Для Ubuntu вот так:

sudo add-apt-repository ppa:zoogie/sdl2-snapshots -y
sudo apt-get update -q
sudo apt-get install libsdl2-dev libsdl2-image-dev

Для Windows:

  • качаем SDL2-devel-2.0.4-mingw.tar.gz, распаковываем, ищем файл SDL2-2.0.4\TARGET-w64-mingw32\lib\libSDL2.dll.a и копируем его в RUST_PATH\lib\rustlib\TARGET-pc-windows-gnu\lib\
  • качаем SDL2-2.0.4-win32-x86.zip или SDL2-2.0.4-win32-x64.zip в зависимости от платформы, распаковываем и кладем либо в директорию, которая находится в PATH, либо рядом с exe который получится после компиляции проекта
  • качаем SDL2_image-devel-2.0.1-mingw.tar.gz, распаковываем, ищем файл SDL2_image-2.0.1\TARGET-w64-mingw32\lib\libSDL2_image.dll.a и копируем его в RUST_PATH\lib\rustlib\TARGET-pc-windows-gnu\lib\
  • качаем SDL2_image-2.0.1-win32-x86.zip или SDL2_image-2.0.1-win32-x64.zip в зависимости от платформы, распаковываем и кладем либо в директорию, которая находится в PATH, либо рядом с exe который получится после компиляции проекта
  • для x86 платформы качаем gcc-core-4.8.1-4-mingw32-dll.tar.lzma, распоковываем и libgcc_s_dw2-1.dll кладем либо в директорию, которая находится в PATH, либо рядом с exe который получится после компиляции проекта

Готовые сборки:

В связи со сложным процессом установки под Windows - можно просто взять готовые сборки для платформ x86 и x64, для каждой версии приложения.

Сборка и запуск

Из корня проекта выполняем:

cargo build --release

Если нужно сразу скопилировать и запустить, то так:

cargo run --release

Скриншоты

v0.1 (статья):

16 тыс. случайных треугольников на экране и всего 1 fps: Растеризация на плоскости

v0.2 (статья):

Низкополигональная модель освещение даже не повершинное, а пограневое, чуть более 2 млн triangle per second: Кольцо и пограневое освещение

Высокополигональная модель освещение такое же, tps = 3.3 млн: Высокополигональный монстр

v0.3 (статья):

Шар с освещением по упрощенному Cook-Torrance: Шар - Cook-Torrance

Кольцо, освещение по модели Фонга-Блина: Кольцо - Фонг-Блин

v0.4 (статья):

Текстурированные модельки:

Дроид, по крайней мере так написал автор модели: Дроид

Личинка Буратино: Полено

Ужасный монстр в желеных шортиках: Монстр

v0.5(статья):

Кольцо с кубической текстурой: Кольцо

Череп с кубической текстурой: Череп

About

Software Render

License:Apache License 2.0


Languages

Language:Rust 100.0%