Transparency of 3d surface vertices

No, you need to set the transparency mode to TransparencyAttrib.MMultisampleAlpha, this has nothing to do with antialiasing. You should also make sure you are requesting multisample properties in your framebuffer, by putting this in Config.prc:

framebuffer-multisample true
multisamples 8

You shouldn’t keep around a memoryview across frames. Panda has no idea that you even modified the data this way, since memoryview is a Python construct. You should re-obtain a writable handle to the data with modify_array(0) and re-create the memoryview for every frame in which you need to modify the data. If you were using the threaded pipeline, you would even get a deadlock here because Panda would refuse to render while you’re still holding a writable handle to the data.

So, I got nerd-sniped by my own link, and I implemented OIT using per-pixel linked lists:

However, this method does have some drawbacks compared to depth peeling, notably the steep OpenGL version requirement, and the demands on GPU memory (and the not-so-graceful failure when you run out of this memory). I might add this to Panda in a future version, but it probably cannot replace depth peeling, especially for older cards.

1 Like