[Payed work] Panda3d shader (mostly) coding job

Tasks to be done is

  1. Modify this code to work with Panda3d 1.10:
    GLSL dithering filter help
    Isn’t for a very old version of Panda so shouldn’t require many changes.

This is the post with the actual code, rest of topic is just explaining what it is for: GLSL dithering filter help

  1. This is for a similar horizontally autostereoscopic display, but it is dithered RGB, not dithered monochrome.
    What we need to do is take a 1920x1080 window and fit 3 480x854 parts in it (from top-left) with each part doing the same as the above code,but have each part show the red, green and blue channel to be turned monochrome dithered.
    The point of doing this is then via projection and bunch of optical elements the 3 sections are going to be overlayed on top of each other to get one 854x480 dithered 3bit RGB projection.


Keep the code commented and tidy as likely will need some modifications in the future (payed separately)

I can do it, but I’d prefer if you’d donate to the panda3d development instead of payment, if thats okay, we have a deal :slight_smile:

Sure, but how do you donate to Panda?

I think the best would be to give it to rdb, which can then decide where to spend it.

I have attached a version, is this what you were looking for? It was not entirely clear if you want the image also rotated, so let me know if you need any changes.
Dithering.zip (8.6 KB)

Okay, I will pm rdb.

Sorry with this version nothing but white gets rendered as well, except the yellow background which is yellow.
Maybe need to change a config variable?

Not sure what you mean by image being rotated.

Win10 64bit, i7, GTX1070, btw.

Is there any console output? Which version of panda specifically are you using?

Nothing out of the ordinary:

Using deprecated DirectStart interface.
Known pipe types:
(all display modules loaded.)
Creating offscreen buffer of size 1920 5124
:ShowBase(warning): run() is deprecated, use base.run() instead

Panda 1.10 devel 64 bit Py3.6.

What are you seeing yourself?

This is what its supposed to show:


Can you try the attached main.py file? (Just replace the old one)
main.py (5.04 KB)

No difference I’m afraid.
Can you please check if you’ve added or modified something in your Config.prc file which might have an effect here?
Which OS are you using?

I am using a standard config.prc, on windows 7 64bit. Maybe you can visit the IRC so we can discuss it there?
What are you exactly seeing? A white box in the top left corner?

So yeah, looks like you fixed it. What was the issue though? Forgot to ask in the chat.

The issue was a driver bug, where a sampler was conditionally used.

I attached a version with the fix and the change you requested:

  • There are 24 views combined into one with a bitmask
  • The views have different angles, which change over time:
  • In frame 0, the views show the scene from an angle of 0, 1, 2, 3, 4, … 23 degree
  • In frame 1, the views show the scene from an angle of 24, 25, 26, 27, … 47 degree
  • In frame 7, the views show the scene from an angle of 168, 169,… 180, 0, 1, 2 … 12 degree
  • and so on

Is this correct?
Dithering.zip (8.25 KB)

Thank you.
Should be correct.
If any tweaks are needed I should be able to code the rest.

BTW have donated already.

One question though, my Panda3D API knowledge is rusty, what was the method for locking the FPS to a given value? (not to monitor refresh rate but to a custom value)

Also if it is okay with you you can pm me your email and I’ll give mine, in case in the future you’ll be interested in some panda3d freelance work.

In Config.prc:

clock-mode limited
clock-frame-rate 30

Or at runtime:

from panda3d.core import ClockObject

clock = ClockObject.getGlobalClock()

That was it, thank you.

I need more payed work like this done.
Tobias are you available?
Or maybe someone else.