Comments (7)
I have started working on this here: https://github.com/jamesmintram/openage/tree/graphics_renderer
from openage.
dis is free software: https://github.com/google/ion, README
transcription follows:
Ion is a portable suite of libraries and tools for building client applications,
especially graphical ones. It is small, fast, and robust, and is cross-platform
across many platforms and devices, including desktops, mobile devices, browsers,
and other embedded platforms.
Why Use Ion?
- Small: < 500k binary size on mobile platforms, often much smaller
- Powerful: Tools for faster productivity when developing applications
- Robust, portable application infrastructure aids in:
- Object lifetime management
- Memory allocation
- Application start-up and static instances
- Threading
- Run-time setting editing
- Automatic performance instrumentation
- More!
- Tools for graphics:
- Analyze graphics scenes to find performance bottleneck
- Trace all OpenGL calls and examine their arguments
- Use scene resources in multiple contexts, automatically
- Run-time graphics state introspection
- Run-time shader editing: change your shaders and immediately see the results
- Fast graphics: Minimal overhead between your application and OpenGL / ES
- Tested: Well-tested and facilitates testing your application
- ~100% test coverage
- Black- and white-box tested, unit tests and integration tests
- Mock implementation of OpenGL API allows direct renderer unit tests and
validation - Integrated Remote: extensible API allows changing arbitrary application
settings on-the-fly for faster development, testing, and debugging
- Cross-platform:
- Desktop: Linux, Mac OSX, Windows (OpenGL)
- Handheld: Android (ARM, x86 MIPS), iOS (ARM and x86), and their 64-bit
variants - Browser: Emscripten/asm.js, NaCl / pNaCl
- Cross-functional
- Used by many teams across Google, running on billions of devices through
multiple Google products
- Used by many teams across Google, running on billions of devices through
NOTE: This is not an official Google product.
from openage.
https://github.com/google/ion/tree/master/third_party hrrg
from openage.
My attempt (will continue someday) is #287, but I'm currently working on nyan.
You can continue my branch and submit pulls there if anyone likes.
from openage.
See #850
from openage.
Here is a list of things to be done for the new renderer implementation:
- Abstraction of render backend
- OpenGL 3.3 or higher
- Use 4.x when available (optional)
- Support ancient 2.x legacy (optional)
- Vulkan (optional, #242)
- OpenGL 3.3 or higher
- Render pipeline abstraction
- Textures
- Shaders
- Uniforms
- Uniform buffers
- Vertex attributes
- Geometries
- Quad primitives
- Circles
- Smooth paths
- Mesh importing (optional)
- Render targets
- Framebuffers
- Renderbuffers (optional)
- Functionality
- Screenshot support
- PBO optimization for texture downloading (optional)
- Pixel-perfect unit hitbox for unit selection and damage areas (#368, #671 )
- Outline rendering
- Investigate why tree textures render incorrectly (#359, maybe this?)
- Fix #374
- Screenshot support
- Terrain rendering
- Optimizations
- Occlusion queries
- Minimize OpenGL state changes (batch by shader, then by buffer)
- Texture binpacking into atlas
- Smooth zooming
- Integration
- Rewrite all of drawing functionality to be expressed in terms of
Renderer
- Get rid of GL code everywhere except the rendering backend and the GUI
- Write a
GameRenderer
that takes evaluations of curves at the current instant as input
- GUI integration
- TBD (#624)
- Rewrite all of drawing functionality to be expressed in terms of
from openage.
we have added various components of a render manager meanwhile :)
from openage.
Related Issues (20)
- Can't build with clang, error: "jthread is supported now, remove custom definition" HOT 4
- Asset conversion issue, AttributeError: 'NoneType' object has no attribute 'readable' HOT 6
- Adding PR/ISSUE Templates for this repo HOT 7
- Asset path type is incorrectly used HOT 5
- error: Couldn't find qml root folder HOT 15
- Test fail when building with GCC 13.2.1 HOT 10
- Error launching game, uncaught exception(s) HOT 25
- openage game: error: the following arguments are required: --modpacks HOT 4
- Running Error on Mac osx 13.4(Macbook M1 Pro ARM architecture) HOT 1
- FATAL: terminate has been called uncaught exception std::exception of type std::__1::system_error: thread::join failed: Invalid argument HOT 2
- Multiple cmake issues when trying to build HOT 4
- Submission to Steam HOT 2
- OpenGL error when launching on Wayland HOT 11
- CMake can't find toml11 on Linux Mint 21.2 HOT 4
- Errors after the new PR merged HOT 3
- Link on website https://openage.sft.mx/ to windows packages is a broken link HOT 2
- Windows Build: Python Command Requiring --modpacks Argument HOT 3
- Asset conversion stalls on media conversion HOT 10
- Fix Ubuntu Dependency installation script HOT 5
- Build failing, unable to find Python3 on Windows 10 HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openage.