Initial work by Clément Foucault with contributions from Dalai Felinto
(mainly per-collection engine settings logic, and depsgraph iterator placeholder).
This makes Blender require OpenGL 3.3. Which means Intel graphic card
and OSX will break. Disable CLAY_ENGINE in CMake in those cases.
This is a prototype render engine intended to help the design of real
render engines. This is mainly an engine with enphasis in matcap and
ambient occlusion.
Implemented Features
--------------------
* Clay Render Engine, following the new API, to be used as reference for
future engines
* A more complete Matcap customization with more options
* Per-Collection render engine settings
* New Ground Truth AO - not enabled
Missing Features
----------------
* Finish object edit mode
- Fix shaders to use new matrix
- Fix artifacts when edge does off screen
- Fix depth issue
- Selection sillhouette
- Mesh wires
- Use mesh normals (for higher quality matcap)
- Non-Mesh objects drawing
- Widget drawing
- Performance issues
* Finish mesh edit mode
- Derived-Mesh-less edit mode API (mesh_rende.c)
* General edit mode
- Per-collection edit mode settings
* General engines
- Per-collection engine settings
(they are their, but they still need to be flushed by depsgraph, and
used by the drawing code)
17 lines
393 B
GLSL
17 lines
393 B
GLSL
|
|
/* Make to be used with dynamic batching so no Model Matrix needed */
|
|
uniform mat4 ViewProjectionMatrix;
|
|
|
|
layout(points) in;
|
|
layout(line_strip, max_vertices = 2) out;
|
|
|
|
void main()
|
|
{
|
|
vec3 vert = gl_in[0].gl_Position.xyz;
|
|
gl_Position = ViewProjectionMatrix * vec4(vert.xyz, 1.0);
|
|
EmitVertex();
|
|
gl_Position = ViewProjectionMatrix * vec4(vert.xy, 0.0, 1.0);
|
|
EmitVertex();
|
|
EndPrimitive();
|
|
}
|