The only question I have is where did you get those fancy Eclipse colors?
HAh go onto youtube and look for something like darkmoon eclipse color. vanzeeban did one. To be honest I have never really used an external library. The math is from a site called gamdev.net.
Im thinking of upgrading the renderer though so instead of rendering as full shapes or lines I do sides this will allow facing comparison alot like minecrafts render technique. If a tile is facing another tile directly it is not drawn vice versa.
Quick test: in eclipse it seems 4000 blocks or rather 48000 lines is 30 fps
Amazing piece of work!
Discussion about greedy meshing, You might be interested
"To be honest I have never really used an external library. "
I havent ever either. I like doing things myself.
Sorry its not 48000 lines it 96000 this is because it overlaps when drawing faces at the moment. Also I tested this on a computer with only standard intel graphics, double buffering and a core2duo (the cheaper range of them) I got 25fps as average for 96000 lines.
Also I have evaluated the use of the two mesh rendering techniques I came up with. the 1st choice which is to render lines across would be more efficient as its not rotating every single pixel in the shape.
Thanks for that link im going to try out a few methods including some more abstract ones that draw immediately.
Just a quick update: Finally supporting x and y axis rotation along with starting rendering of faces still trying to find a fast algorithm for that but lots of playing with it
Sweet! When is the texture update coming? :point:
When I can finally get my head around the line algorithm :D.
OK so ive set a few goals for this project.
1: Fully develop a functioning 3d rendering that allows for quads and triangles to be rendered along with support for textures.
2: Integrate a fully functional maths api containing complex algorithms for handling line rendering , areas of complex shapes and other things that may be useful.
3: Support immediate and buffer based rendering techniques.
4: support 2d and 3d states allowing switching between both states without any hastle
5: Implement large amounts of optimisation to give the most performance.
6: Include advanced face culling algorithms to lower the amount of objects that need to be rendered.
- Things below here are most likely going to happen very late in the development
7: a dynamic lighting api and system.
8: 3d & 2d animation api
9: Advanced input support.
If there is anything you guys would think would be great then post them below!
TEXTURES ARE FINALLY ADDED!
Great! Looking forward to more updates. Keep on the good work.
Thanks the code I have needs massive optimisation now that I know how it works im going to rewrite it entirely.
so I’ve just done a few performance tests. The code is now optimised a little bit more there is a lot that can still be done however currently 256*256 textured 32 by 32 squares runs at 10 fps which is about 250000 squares or 500000 triangles.
Well, it seems your engine runs just a little slower than immediate mode in OpenGL! Good job
Still tonnes of optimisation to go. Also just to note ive fixed the anomolies turns out I was having to input the vertex coordinates of the objects on the screen as ints not doubles.
I am going to give out a demo of the code that renders 256 * 256 squares controls are WASD to move around Shift to go up and SPACE to go down use the arrow keys to rotate the camera around.
Download the demo just here. https://drive.google.com/file/d/0B48ywWBymi3OWmpVOXNMdHZLWms/edit?usp=sharing
Just to note this current version does not support removing squares that are behind the camera so its a bit of an issue just havent been able to implement it.
Managed to improve performance a lot by reducing the number of trig calls by about 99%
I love seeing a good-ol’ Pseudo-3D engine nowadays. I’m developing one right now myself! (But in Python!)
Wonderful Work!
- Jev
Whenever I see the thread title pop up on the unread topics list I get excited at the idea of a 32D graphics engine :’(
Anyway, this looks quite cool, and even though it’s never going to be worth using when we have OpenGL, it’s an awesome way to learn more about what OpenGL is actually doing.
I’ll have to try making one of these myself some time.