Giter VIP home page Giter VIP logo

tweakoz / orkid Goto Github PK

View Code? Open in Web Editor NEW
29.0 7.0 7.0 270.96 MB

Orkid Media Engine (C++/Lua/Python3/Linux/MacOs/OpenVR)

License: MIT License

Python 4.51% Makefile 0.01% C++ 83.35% CMake 0.45% C 9.63% Objective-C++ 0.26% HTML 0.07% Mathematica 0.36% Lua 0.21% Roff 0.01% SWIG 0.55% Jupyter Notebook 0.02% Tcl 0.16% Verilog 0.08% Assembly 0.07% Objective-C 0.27% GLSL 0.01%
particles audio simulation ecs linux mac kurzweil-k2000 bullet-physics gltf2 pbr-shading

orkid's Introduction

logo

  • Ubuntu 22.04 CISTATUS
  • Ubuntu 20.04 CISTATUS

Description

Orkid is a C++20 flexible media presentation engine. By media, we mean games, realtime 2d/3d graphics, and/or audio. Orkid itself is licensed with the permissive MIT license, that said Orkid does have dependencies on other libraries which will have different licenses and it is left up to the user to remain compliant with them. Orkid, being fairly modular can be run with less dependencies and reduced functionality to simplify license creep.

History

Early Orkid was used for a a few games by Santa Cruz Games. It was used as both a game engine and tooling infrastructure. Prior to the name Orkid I used to call it Magnum (around 2004-2005-ish)

  • Pickles on XBox/PS2 (Hybrid - Magnum for Graphics, SCGAPI for gameplay)
  • Godzilla Unleashed for Nintendo DS (2007)
  • Tomb Raider Underworld for Nintendo DS (2008)
  • Igor The Game for the Wii and PC (2008)
  • Spongebob Gravjet Racing for Wii/Pc/XBox360 (2009)

Software Development Information

How to build

How to run

GLSLFX shader format docs

EngineLibraryTopology

Doxygen - code documentation

Artist Information

Blender pipeline notes

Example Content (most of it old, updates coming soon.)

Particles

ProceduralTextures

TerrainGen

Other (video) examples of content:

PBR ShaderBalls

SceneGraph-Picking

Deferred-PBR-SpotLightProjectors-1

Deferred-PBR-PointLightProjectors-1

Deferred-PBR-PointLightProjectors-2

MoonDiver

Compositor

NodeCompositor

Particles-Vortex&TurbulenceNodes

Paritcles-SphereColliderNode

Particles-MultiSystem

Particles-ChainOfSystems

ParticlesAndCompositor

ProceduralTexture

Prodigy2-GameDemo

OrkidVR-POC

Singularity-NewAudioSynth

Singularity-ModulatorHUD

orkid's People

Contributors

tikibeast avatar tweakoz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

orkid's Issues

ptex: multichannel outputs

allow procedural textures (ptex) to have multiple output channels - this would allow for things like PBR procedural textures with albedo, normal, roughness, metallic and emissive channels. Might also want to replace implicit output detector with user explicit output selection

initial build: ork.tuio not found during first build from fresh repo

ork.tuio not installed properly. This is an issue in the ork.tuio/CMakeLists.txt - to fix: cd /orkid/ork.tuio; make install . more specifically - ./build.py does do a multi-project install. Apparently in nested cmake projects, installs are deferred until all subprojects are built, as opposed to when the individual subprojects are finished building. The probably fix for this is to just make ork.tuio an external dependency

ux: dynamic HIDPI

Detect HiDPI settings dynamically except once at startup. This will allow you to move a window from a LoDPI monitor to a HiDPI monitor and still have everything look correct. On X11/Xcb - it's probably easier said than done.

deferredrenderer: improve lighting.

The deferred renderer is still in its infant stage - use actual scene lights (point, spot, directional) instead of the hard coded test lights.

editor: 3d transform ged node

we want to edit transforms in the editor with user choosable schemes:
decomposed (trans, rot(axisang,quat,euler), scale)
direct element, etc..

ux: fix picking.

It was last verified working about 3 months ago (probably directly before the compositor changes).

osx: fix hard coded mipbias config

commited at: commit

This was added to prevent my macbook pro which only has 512MiB of vram from choking on new bigger scenes with lots of 4k textures. Ideally a dynamic VRAM manager would automagically detect low available VRAM conditions and adjust gfxapi mip bias dynamically.

assetmgr: asset reflection properties

allow adding properties to asset wrapper objects
classes which subclass Asset

This would be useful for modifying procedural or file based assets.
Issues:
should references to an asset should hold the properties? - or the flyweight ? maybe both...

ptex: paint strokes / masks

add a 'paint stroke' ptex node. it would store vector events instead of bitmaps - rasterization would happen dynamically - potentially with ptex inputs influencing the rasterization

ux: use lighter weight compositing node when creating new scene.

Currently, a new scene will instantiate a the heavyweight testing deferred compositing node. This is too slow on certain machines. Perhaps we should also have a dynamic deferred compositing node that routes to children compositor nodes based on system capabilities.

renderer: shadows

possibilities:
spotlight depthmap
pointlight depthmap (equirectangular projection)
cubemap depthmap

cleanup: strip out old shaders and asset pipeline

We are ditching the old maya cgfx/collada based shader pipeline - since Maya just tends to be too expensive for what you get these days...
So get rid of GfxMaterialFX, and GfxMaterialBasic (the wii pipe).
the new PBR shader/pipe should hopefully suffice for most cases.

project: clean up test assets

If they don't work, fix them or delete them.
Clean up folder structure.
Do not include ork.data/pc (only include ork.data/src)
Asset Binaries can be regenerated via AssetAssistant.
Alternatively, asset binaries can also be regenerated on demand via the content addressable file
systems (datablockcache).

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.