Giter Site home page Giter Site logo

quanenesy / csharpgl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bitzhuwei/csharpgl

0.0 1.0 0.0 138.74 MB

:art:CSharpGL wraps modern OpenGL features and some high-level common functions(text, scene, picking, UI etc) and offers general demostrations and documents. Inspired by SharpGL.

Home Page: http://bitzhuwei.github.io/CSharpGL/

C# 96.32% Smalltalk 1.13% GLSL 1.81% Batchfile 0.01% C 0.71% JavaScript 0.03%

csharpgl's Introduction

Object-Oriented Modern OpenGL Wrapper in C#

CSharpGL @ nuget | CSharpGL Wiki
CSharpGL wraps modern OpenGL features and some high-level common functions(text, scene, picking, UI etc) and offers general demostrations and documents.
CSharpGL is inspired by SharpGL.

🚀Modern Rendering

High-efficiency rendering of massive vertexes is supported by Object-Oriented modern rendering using GLSL shaders and vertex buffer objects.
modern-rendering

🌠GLCanvas

A winform control that supports drag-drop and wraps initialization of creating OpenGL context. raycast-volume-rendering

🚗Uniform Variables

structs support setting values for uniform variables in GLSL shader. edit-uniform-value

♋GLSwitch

Wraps OpenGL commands like

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA);
...
glDisable(GL_BLEND);

or glLineWidth(2.0f); GLSwitch

📌Color-Coded Picking

IColorCodedPicking supports picking primitives in multiple vertex buffer objects using Mouse.
pick and move primitive

🔘☑️🔳GLControl & Text

Rendering 'Control' at fixed position with fixed size.
For example, UIAxis renders an axis at left bottom corner.
All kinds of controls binds to specified border just like winform-control.
Rendering text using glRasterPos() and CallList().(Obsolete)
Rendering text using UIText.
UIText and UIAxis

export-glyph-texture-from-TTF

💎Some Cool Demos

Image Processing using Compute Shader.

Simple edge-detection implemented by compute shader.
compute-shader-image-processing

Raycast Volume Rendering using 3D texture.

raycast-volume-rendering

Particle Simulator using Compute Shader.

Particle's speed and position is updated by compute shader.
compute-shader-particles
compute-shader-particles

Order-Dependent Transparency VS Order-Independent Transparency.

order-independent-transparency

Point Sprite.

10000 particles with a sphere inside a cube. point-sprite

Generated Klein Bottle.

Klein Bottle

Earth.

An earth model that singly rotates same as real earth. It's composed of 65341 positions, normals and uvs and 130140 indexes and a 10800x5400 texture. earth

🆔💯Billboard and LabelRenderer

Billboard can be used to display health-bar, damage numbers in game application. LabelRenderer renders a string at specified position which always faces camera.
billboard-health-bar-text

🎥Scene Editor

Useful tool to build a scene and feels how opengl's transform system works. CSharpGL-Scene-Editor

🍟Renderer Generator

RendererGenerator is a tiny console that reads an xml config file and dumps a Renderer.cs, a Model.cs, a vertex shader file(.vert) and a fragment shader file(.frag). A demo is shown as below:

<?xml version="1.0" encoding="utf-8"?>
<RendererGenerator TargetName="Demo" ZeroIndexBuffer="false" DrawMode="Points">
  <VertexAttribute NameInShader="in_Position" NameInModel="position" AttributeType="vec3" />
  <VertexAttribute NameInShader="in_TexCoord" NameInModel="texCoord" AttributeType="vec2" />
</RendererGenerator>

❓Support or Contact

Check my blog here or join my QQ GroupCSharpGL(C#+OpenGL).

csharpgl's People

Watchers

 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.