To my understanding, cycles works by simulating photons. I would like to create a custom shader to put on the inside of a sphere that takes any photon that hits it and moves it to the opposite point on the sphere, while preserving the photon's velocity. If that didn't make sense, I can upload a picture. I believe this effect is impossible to simulate by combining other shaders, so I've been looking into OSL, but even that is starting to seem impossible. Does anyone have any suggestions?

Edit: Sorry, I didn't explain my goal very well. When I said opposite side of the sphere, I meant mirrored along the center of the sphere. I'll upload an image later today when I get back to my computer.

Edit 2: Photon Hopefully this image can clarify what I'm talking about. Points A, B, and the center of the larger sphere are linear. The light source is just there as an example. If a photon hits point A at the angle shown by the arrow, it should move to point B, at the angle shown by the second arrow. The angles should remain the same, only the position of the photon should change.

  • $\begingroup$ How is what you are trying different from transparency or low IOR glass? The translucent node brings light from the other side. We can change the appearance and location of the surface but to alter the way a ray is sent through the scene would mean altering the cycles code. $\endgroup$ – sambler Jun 24 '17 at 6:44
  • $\begingroup$ Sounds like you're trying to create some kind of 'cloaking device' effect. You might be able to get some way there with Refraction shaders but restoring the original direction of the incoming ray might not be possible. Please upload an image. $\endgroup$ – Rich Sedman Jun 24 '17 at 7:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.