Giter Site home page Giter Site logo

quasar's Introduction

Quasar

This repo is currently intended for me to learn Vulkan. This project was originally intended to become a partial higher level Vulkan wrapper however goals shifted and now this repo will become a GUI library called Quasar that also provides a partial higher level Vulkan wrapper and later also support other technologies and platforms. I will use this project extensively throughout my future projects.

The code is in a very early state. There are TODOs all over the place. Only use this if you want to test something and know what you're doing. Don't use this for any project (either production or prototyping).

When the code becomes a fully functional library it will still not be 1.0 so that there is enough time to figure out what parts can be set to common defaults and what needs more granular control.

The text below is just temporary important/useful notes that will be moved to a proper documentation when ready.

GLSL Naming Convention

This library can optionally infer the vertex attribute layout from the SPIR-V or GLSL shader code. However, this requires a special naming for input variables of the vertex shader when using instancing. Also, the vertex buffer must be at binding location 0 and the instance buffer must be at binding location 1. The idea is to make the vertex shader code the single source of truth for the vertex layout and therefore reducing duplicate code that comes from the explicit nature of Vulkan. When instancing is not used, the naming convention can be ignored.

#version 460

in vec3 vPos; // input variables from the vertex buffer are prefixed with 'v'
in vec3 iPos; // input variables from the instance buffer are prefixed with 'i'

void main() {
    gl_Position = vec4(vPos + iPos, 0);
}

quasar's People

Contributors

redstonecrafter0 avatar

Watchers

 avatar

quasar's Issues

Add documentation

First complete #5.
Then use Material for MkDocs on GitHub Pages using a pipeline.

Try FFI from Java 22

FFI is now stable as of Java 22 and no longer a preview feature. FFI should have superior performance compared to JNI which is used by lwjgl-vulkan. This should also reduce the effort of supporting Kotlin/Native by using KMP.

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.