-
Notifications
You must be signed in to change notification settings - Fork 186
Home
This is a series of tutorials aimed at LWJGL and LibGDX devs looking to learn more about OpenGL, shaders and the programmable pipeline.
The tutorial series uses the lwjgl-basics API to reduce clutter and keep things readable. However, many lessons include "Under the Hood" sections, which go into more detail on the specific OpenGL calls required to set up the various wrapper objects (e.g. Texture, Game, etc).
- Display Creation
- OpenGL Textures
- Batching Sprites
- Frame Buffer Objects
-
Intro to Shaders
- Lesson 1: Red Boxes
- Lesson 2: Inverting a Texture
- Lesson 3: Circles, vignette, sepia and grayscale effects
- Lesson 4: Multiple Texture Units
-
Lesson 5 will cover blurring images.
- Appendix: Tricks for Android, iOS and WebGL
- Lesson 6 (WIP) will cover normal map lighting for 2D games. See here for now.
- Lesson 7 (WIP) will cover light scattering, aka "god rays".
-
- Creating Your own 2D Renderer
- LibGDX
- GLSL Sandbox
- Misc
You can also use the lwjgl-basics source code as a minimal shader-based library for 2D LWJGL sprite games. It provides essential utilities for textures, shaders, and sprite rendering.
For a large game project, a platform like LibGDX may be more suitable.
The source code is hosted on GitHub.
The best way to install the API is to use Eclipse and EGit (or another IDE with Git support) to pull the most recent source code. Included in the lib
and native
folder is a distribution of LWJGL 2.8.5, as well as an Eclipse project with class path set up for you. You can download newer versions of LWJGL from their downloads page.
Alternatively, you can download the full library as a ZIP:
Then, simply open the Eclipse project to start testing. Ensure your LWJGL JARs and natives have been set correctly in Eclipse, NetBeans or IntelliJ, and include lwjgl-basics as a class library. lwjgl-basics also uses PNGDecoder.jar as a dependency, which can be downloaded here.
See the tests package to get started with some basic examples.