GithubHelp home page GithubHelp logo

wwwronin / d3d12_vulkan-proceduralcity Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kretash/d3d12_vulkan-proceduralcity

0.0 0.0 0.0 46.09 MB

A procedurally generated city rendered with D3D12 and Vulkan

Home Page: https://kretash.wordpress.com/category/computing-project/

C++ 48.32% Python 0.58% C 49.68% Lua 0.55% GLSL 0.38% Batchfile 0.01% HLSL 0.47%

d3d12_vulkan-proceduralcity's Introduction

DirectX12 and Vulkan Procedural City


UPDATE: As you can see this project is old, it was done with the Vulkan SDK 1.0 and the initial drivers. I believe there are issues that have manifested with new drivers.

This is the end of this project. Although there are features I wanted to implement there is no more time. The whole project has been a great learning experience.

The city is rendered with ExecuteIndirect, I store all geometries in a single buffer and have created a system that allows me to reserve and delete geometries from said buffer. All buildings, although similar are a unique instance generated based on a seed. Each building has a set of textures, diffuse, normal and specular generated with the same seed. The texture manger will load textures and decide their LOD. The biggest textures are 1024x510 and the smallest 128x64.

Since I started this project in September I thought about porting it to Vulkan. I have never supported 2 different graphics APIs before, but I separated the C++ code and the D3D12 with intentions to have an easier job if I get the change to port it to Vulkan.

Controls


  • WASD movement
  • QE height movement
  • Shift speed modifier
  • Space Bar show/hide interface
  • ESC quit

Prerequisites


  • Windows 10
  • Visual Studio 2015
  • Windows 10 SDK
  • LunarG SDK 1.0.3 (Only necessary to run vulkan validation)

Build


  • Edit deps/genie/premake.lua and set "windowstargetplatformversion" to your installed version ( This can also be done within VS )
  • run "genie.exe 2015" or use the bat file.
  • Open vs2015/D3D12 Procedural City.sln and compile.

Bugs


  • Hot swapping from Vulkan to D3D12 is 90% stable
  • Will not run well on low end machines or machines with low VRAM

Dependencies


License


MIT License

d3d12_vulkan-proceduralcity's People

Contributors

kretash avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.