I believe simplepbr is a very cool addition to Panda3D and it has been beneficial for my typical use case of rapid prototyping.
I do have a handful of questions regarding simplepbr’s usage and internal logic, and I’d like to offer a small piece of my own experience working with shaders in Panda3D.
Questions:
-
Why doesn’t simplepbr support CommonFilters? In my experience, simplepbr cannot find a display region to filter, causing the shaders to fail. Custom shaders based on simplepbr can utilize CommonFilters, so I do not see why simplepbr itself cannot.
-
Why doesn’t simplepbr support PandaNode level shader applications? At least in my own work, and in the work I have seen from other users Panda3D code, this is a core OpenGL feature that should be exposed.
-
Why is there a preference for a negative vert normalization, with no option for a positive one in the frag shader? This can cause light attenuation issues on NVIDIA hardware specifically, without discretizing these two options into separate shaders applied to different nodes (at least, this is my solution, maybe others exist).
-
Why doesn’t simplepbr support Panda3D clip planes? This can be added using a uniform vec4 clip_plane_def and a simple
if (dot(v_world_pos, clip_plane_def.xyz) > clip_plane_def.w) {
discard;
}
(credit for this clip code goes to @Epihaius )
- How about adding some GLSL parallax-mapping support? This link for instance may be instructive: parallax-mapping/parallax.frag at master · piellardj/parallax-mapping · GitHub
I appreciate all the great work currently being done with Panda3D, and thank you for taking the time to consider the aforementioned issues.