stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

Tomatofu

@Tomatofu

Joined June 1st, 2026

  • 14Devlogs
  • 3Projects
  • 1Ships
  • 18Votes
Open comments for this post

3h 22m 7s logged

Changes:I fixed a parsing error with materials with the map_d attribute. I also added support for tiling UVs, so the well-known Sponza model works properly.

0
0
33
Ship Pending review

I made a .OBJ File Viewer that uses only the CPU (no OpenGL a.k.a software rasterization). It has its own (albeit not very good) parser for .OBJ and .MTL files. It supports texture mappingl, near clipping, Phong illumination, smooth shading, and screenshots. All the user has to do is drag a .OBJ file into the window and it will open it.

I don’t have access to an M-series MacBook or a Windows machine at the moment, so I have only packaged binaries for MacOS x86_64 and Linux x86_64. If you are not on any of these platforms, or do not want to download a random binary, view the demo here: https://youtu.be/1D8iWTW6Xe0

  • 10 devlogs
  • 40h
Try project → See source code →
Open comments for this post

2h 29m 28s logged

I spent a lot of time improving the CMake packaging. Now, I can just run one command and it will build and package the project (with correct linking) for MacOS and Linux. I don’t have access to a Windows machine at the moment, so I haven’t added support for that yet.

0
0
25
Open comments for this post

23m 16s logged

My last touch was reversing the Z-direction because OBJ files use a right-handed coordinate system. Now I think I’m ready to ship this project.

0
0
13
Open comments for this post

3h 43m 38s logged

I finished adding near clipping. I spent a ton of time figuring out why the UV coordinates were messed up, but I ended up fixing that. Now, you can go extremely close up to the model without any unseen polygons.

0
0
26
Open comments for this post

10h 12m 9s logged

I added basic near clipping for polygons with two vertices behind the plane (I will eventually add clipping for polygons with one vertex behind the plane). This actually took forever to figure out. I nearly gave up twice. The attached image puts the clipping plane at 0.5 so you can see what I am talking about, but in reality the clipping distance will be a really low number like 0.01.

0
0
21
Open comments for this post

47m 57s logged

I’ve just fixed some more bugs, including: leading spaces not working, UV coordinates being upside down, indicator text not showing, and the specular exponent being the wrong default value. The proper UV coordinates now make some of the free models I downloaded actually work. The rasterizer is now super cool.

0
0
26
Open comments for this post

1h 4m 11s logged

I just fixed some bugs. Those bugs include three buffer overflows (💀), a goto initialization error, and file loading not working with Windows paths on other OS’s.

0
0
22
Open comments for this post

5h 26m 11s logged

I added texture and material loading support. It uses SDL_image to load the textures and supports relative paths. It supports MTL files. I think I’m going to ship this project soon.

0
0
49
Open comments for this post

5h 48m 3s logged

Texture mapping has been implemented into the renderer but not the parser. My next step is to add textures to the parser so that the user can load the textures automatically instead of manually writing the filepath. I have already set up the structs for MTL support, including a hashmap to allow for string-indexing.

0
0
4
Open comments for this post

4h 28m 10s logged

I added texture support to the polygons so that the graphics don’t get boring. I also improved the physics with better polygons and taking mass into account.

0
0
15
Open comments for this post

2h 8m 43s logged

This update might be a little boring, but I genuinely spent hours debugging a problem with the normals that occured on high-poly models. It added random empty spots in the model and it was genuinely so satisfying to fix it. All that was happening was that it was dividing by zero and returning NaN; I just added a check to avoid NaN.

0
0
8
Open comments for this post

10h 4m 7s logged

I added a basic Verlet integration physics engine with 2d balls and polygons. You can drag the balls and points on the polygons around. The physics runs on a fixed timestep, but I added interpolation so the rendering is still smooth.

0
0
5

Followers

Loading…