SYSU
博学
审问
慎思
明辨
笃行
SYR
Suos
Cultores
Scientia
Coronat

Recent Posts

  • Spherical Projection Correction

    In this article I briefly discussed and demonstrated how to simulate projecting images onto a spherical screen with a normal projector. Now, the problem comes naturally: how do we correct the image so that it looks right? By modifying the PyOpenGL program slightly, we can have a image generator that can help us analyze this problem and formulate a solution.

  • PyOpenGL Tutorial 4: Spherical Projection (Case Study)

    I think most of you may have heard of the concept of dome theaters. Basically, the screen of these type of theaters are not a flat plane, but instead a sphere-like surface.

    A dome theater

    Usually they use special projectors to generate correct images on the screen. But have you ever wondered what it is like if we use a normal projector on one of these screens? With OpenGL and Python, we can develop a simulation program for this scenario very quickly.

  • PyOpenGL Tutorial 3: Rendering Textures and Text

    It is very common to render images and text in OpenGL programs. In OpenGL, both tasks can be done using textures. With the help of numerous helpful Python packages, it is much easier to load images under PyOpenGL environment.

  • PyOpenGL Tutorial 2: Basic 3D Rendering and Lighting

    Since it is very common to render 3D objects in practice, this time we are looking at the basics of rendering 3D objects with illumination effects.

  • PyOpenGL Tutorial 1: Introduction

    Although there are a handful of tools for visualizing data in Python, nothing can come close to OpenGL regarding performance and interaction. As for myself, I have found two cases where I have to use OpenGL inevitably: there was once when I need to write a demonstration of solving partial differential equations to animate liquid surface; and there was another time when I needed to build an interactive program that shows what it is like if a projector is presenting its image on a spherical surface. I will elaborate on these two cases during this series of tutorials.