Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ithasreturned #123

Closed
wants to merge 81 commits into from
Closed

Conversation

mirv-sillyfish
Copy link
Contributor

GRAPHICS: shader support

Support runtime generated shaders, and shader based rendering of world geometry.
GUI is not rendered using shaders. OpenGL compatibility profile still required for GL3.2
to be used.


switch (flags) {
void ShaderBuilder::addVertexShaderString(Common::UString &header, Common::UString &body, uint32 passType, uint32 blendType, bool isGL3) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The parameter blendType is unused in this method (and will throw an "unused parameter" warning). Please wrap blendType in the UNUSED() macro to document that it is unused (and silence that warning).

@DrMcCoy
Copy link
Member

DrMcCoy commented Jun 29, 2016

Keep in mind that commit messages should, after the subsystem tag, start with a capital letter and shouldn't end with a period. I.e. it should be "GRAPHICS: Render decals after primary mesh data" instead of "GRAPHICS: render decals after primary mesh data."

@mirv-sillyfish mirv-sillyfish force-pushed the ithasreturned branch 2 times, most recently from 193e450 to 046c7ec Compare February 13, 2018 23:01
@mirv-sillyfish mirv-sillyfish force-pushed the ithasreturned branch 3 times, most recently from 97fe1be to 02ad46e Compare September 3, 2018 19:10
Addition of shared mesh and increment/decrement changes to track
them.
A shader renderable is really a description of how to render
something, so add support for it to modelnode.
Load appropriate index and vertex data into _mesh, suitable for
modelnode rendering.
model_nwn now has a defalt shader renderable. It is not not copied
when inheriting from a parent node.
ModelNode now takes the parent transform as a parameter to the
render function. This is necessary because _absolutePosition is
relative to the parent, not the world, coordinates.

Updates to switch the projection matrix between 3d perspective
and orthogonal has also been included in this commit.
ShaderRenderable now properly increments and decrements
component resource counts as they are added or removed.
Add colour support when rendering text using texturefont. This is
known to work with NWN, but may break other games.
Use shaders for Jade Empire abfont text rendering.

Portraits should really be made to work again soon.
Black borders around portraits supported. Only black.

This commit includes rebase fixes for glm transform support.
Use radians when setting a node's orientation, not degrees.
Allow modelnodes to specificy an alpha value even without a valid
_mesh component.
Start to use renderImmediate and queueRender over normal render
calls to allow per-game shader based rendering easier.
On call to finalize in Model, make sure createAbsolutePosition is
called to ensure transformation matrices are up to date.
With Mesa supporting GL3.2 compatibility profiles, update code to
render properly on the GL3.2 code pathways.
To avoid affecting working games, create separate render pathway
for the shader work. This can be enabled at engine initialisation.
Use old rendering pathways if shaders are not in use. This is
incomplete work.
All orientation in degrees, with conversion to radians prior to
any call to glm::rotate.
Use command line option --opengl3=true/false to specify if GL3.2
should be attempted or not.
Fix rotation on the shader based rendering path.
Only attempt to plug in raw mesh data if the node is of type mesh
for Dragon Age. Actually create rawMesh as well.
Sonic uses an orthographical projection, not a 3d perspective
projection, so don't assume 3d perspective in renderWorld.
Always add meshes from KotOR to MeshMan, else they are not freed
at program exit.
Suppress excessive development output when loading Jade Empire
models.
Delete ABCFont renderable and material properly.
Assign name before passing mesh to MeshMan to have MeshMan accept
the mesh and later properly delete it.
Properly save Jade Empire mesh data to MeshMan, so that it's
correctly freed later.
Probably a good idea to add created meshes to MeshMan in all cases.
Create rawMesh correctly, and assign data to MeshMan correctly.
Remove outdated material build for Jade Empire that relied on the
older shader construction routines.
Remove strings and deprecated shader building system.
Old shader construction code is deprecated, remove it from KotOR.
Remove deprecated shader construction code from The Witcher.
ShaderBuilder is deprecated, and removed.
@mirv-sillyfish mirv-sillyfish deleted the ithasreturned branch February 5, 2019 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants