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.