Coder Social home page Coder Social logo

gosgl's Introduction

GosGL

Modern OpenGL GPU-based resolution-independent graphics library. Written in Go.

Rendering vector-like graphics using shaders on the modern GPU pipeline is extremely efficient: hardware-accelerated, way faster, energy-saving and no heavy cpu computation is needed. This new wave of technology has been developed by multiple parties over the years and it's working now. Some major popular graphics library, namely Skia has already adopted the technique in the new accelerated version. Nvidia also released the Nv_path_rendering API using this technique.

This project tries to implement a near pure Go graphics library using new resolution-independent techniques.

Here's a screenshot demoing the current stage of the project:
screenshot

It can already render smooth quadratic and cubic curves forming paths with antialiasing working, using a technique based on [Loop/Blinn] and some stencil magic. Talking about filling, these are the hardest to implement and they're working. It needs one more big thing to be basically usable: stroking. Stroking, especially dashed stroking involving curves is a difficult problem to solve. I found published papers by masterminds describing exactly the techniques to do these though, therefore it's not that far-fetched.

So I put my work here in the hope of finding someone, someone mathematically inclined to move it forward, become a real thing, it may create a brand new world or not in what way you may imagine. I feel like I'm not intelligent enough or something, it's just hard to grasp the mathematics involved. Nevertheless, I learned a great deal while tinkering with all the stuff about graphics and OpenGL involved, acquired quite some knowledge and experience in the process, so I could help with the foundation.

Drop me an email if you're interested. Would be a pleasure to work with you. I'm at phaikawl[at]gmail[dot]com.

Questions? Ideas? Come here: google group

#Building It's a Go project so building is straightforward, the only non-go dependencies are OpenGL and Glfw3. Their installation instructions are here:

  • Go-gl
  • Go-glfw3
    After installing these, just go get github.com/phaikawl/gosgl.

gosgl's People

Contributors

hami9x avatar

Watchers

James Cloos avatar  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.