EDIT: I recently completed my proposal. Please Review @kjhollen @stalgiag.
Here is the link to my proposal
Hey! My name is Sanket Singh, and I intend to work on improving and enhancing the WebGL mode in this year’s Google Summer Of Code. I have been contributing to p5.js since last December, so I know basic things about p5 and its workflow. At the moment, these are some of the functionalities, along with a little briefing, which can be implemented (clicking in my mind atm) and might benefit the community-
-
spotLight()
- A spotlight is a type of directional light that is not coming from infinitely far away. That is, it has a source position. The closest real-world example would be of a torch’s light, in the dark. -
emissiveMaterial()
- What if, the material itself glows? Well, it is effectively anambientMaterial()
which does not rely on lighting up to a certain extent. -
specularMaterial()
&&specularLight()
- If your sketch contains a red rubber ball, and a white light shines on it, diffuse red light is reflected in all directions. If that ball were to land in a puddle, the water on the surface of the ball would shine, or reflect a specular light. Specular refers to light which bounces off a surface in a preferred direction (rather than bouncing in all directions like a diffuse light). -
fallOff()
for lights - What if you are standing with a lamp in your hands? Things which are further away from you would appear darker, or the light would ‘fall off’. -
removeLights()
- Want to reset all the lights defined earlier, or just want no lighting effect in some part of your sketch? -
a function, by which the users can crop or resize the image in the sketch itself, would prove helpful, along with a sister function, which would return the original image.Removed this because there are many open source tools which are better. -
frustum()
- An alternative to perspective camera with more freedom to user to select the projection.
I need reviews and suggestions on the above, along with maybe new ideas which can be implemented?
Also, I posted an issue on GitHub for the same. Thanks for your time!
Edit: Currently, all the implementation are very brief. I would include the actual code changes in th proposal itself.