//EDIT this was unintentionally a double post, so instead I'm gonna change it to a news post.
Been working on some dynamic rendering and shaped rails for the 1.7/1.9 rewrite, starting with some 'blended' vanilla shapes, but later on I can expand the system to include all the rails in TC.
Basically the system works by providing the 4 vector 3's necessary for a de casteljau's beizer curve to each shape, along with the blocks in length to define the segmentation.
Here's what i mean by 'blended' it renders as if it's multi-block so it's smoother. Later on I'll be able to take this same system and make it actually multi-block like the rails in TC's port.
Still need to cover the pitch rotation for the parts, and blend the segments together, but if nothing else this is a good example of the progress on the new rails.
Aside from the rails a lot of other systems are done, and I'm quickly running out of bugs to fix, so hopefully stable alpha release soon (alpha sounds early, but beta is when I'll actually start adding content from the TC port).
the way that is done looks like a performance NIGHTMARE. I'm hoping this form is temporary?
XD funny thing is its better than the old rails significantly but yeah its just temp. On another note would anyone be interested in some https://minecraft.curseforge.com/projects/jurassicraft2 Rollingstock? hauling Dinos around in some custom stockcars.
XD funny thing is its better than the old rails significantly but yeah its just temp. On another note would anyone be interested in some https://minecraft.curseforge.com/projects/jurassicraft2 Rollingstock? hauling Dinos around in some custom stockcars.
Dinosaurs being stuffed in railcars? Hey, why not?
the way that is done looks like a performance NIGHTMARE. I'm hoping this form is temporary?
You would think, which is the point, but I'm using some win 2k-esk methods to accomplish this stuff (I still code like it's 2001), So performance is actually about on par with TC's port, and that's before I've optimized the rendering and adding dynamic shape caching.
Plus client side can define the segments between 4 and 20 per block (default being 16), which helps low-end users even more, and server side it's just an array of vector 6's (a standard spline), so it's pretty low overhead there from the get-go (spline movement calculations are a lot easier on the CPU than the calculus that vanilla and TC currently do).
You would think, which is the point, but I'm using some win 2k-esk methods to accomplish this stuff (I still code like it's 2001), So performance is actually about on par with TC's port, and that's before I've optimized the rendering and adding dynamic shape caching.
Plus client side can define the segments between 4 and 20 per block (default being 16), which helps low-end users even more, and server side it's just an array of vector 6's (a standard spline), so it's pretty low overhead there from the get-go (spline movement calculations are a lot easier on the CPU than the calculus that vanilla and TC currently do).
I'm talking GPU-wise. it's an awful lot of boxes per track, and each box is 12 triangles to render. (though using backface culling can cull it down to as few as 2 per box, depending on the viewing angle)
I'm talking GPU-wise. it's an awful lot of boxes per track, and each box is 12 triangles to render. (though using backface culling can cull it down to as few as 2 per box, depending on the viewing angle)
GL11 doesn't render triangles, it renders quads (you can do triangles, but why cut performance in half?).
Besides that it can be reduced to as low as 4 segments per track in config, (1 segment being 20 faces rendered to GL11 directly), which is substantially less than TC now.
Add to it, even with VBO and/or displaylists, most all of the work still falls on the CPU due to the java environment not having proper forwarding to the GPU.
GL11 doesn't render triangles, it renders quads (you can do triangles, but why cut performance in half?).
Besides that it can be reduced to as low as 4 segments per track in config, (1 segment being 20 faces rendered to GL11 directly), which is substantially less than TC now.
Add to it, even with VBO and/or displaylists, most all of the work still falls on the CPU due to the java environment not having proper forwarding to the GPU.
actually, a 'quad' is two triangles defined by 4 points. It still has to be rendered as triangles.
actually, a 'quad' is two triangles defined by 4 points. It still has to be rendered as triangles.
Under the hood sure, but under that it's also just skewed pixels, so, splitting hairs and technicalities. The difference still remains quads have less management calls overall by comparison.
Plus lets add to that by also pointing out I use a HEAVILY modified and optimized version of the fexcraft render which isn't dependent on any of minecraft's sloppy render code, so that alone is a decent boost and a completely different environment for rendering.
Now if this was GL4+, or GLES, or even DirectX6+, yeah triangles would be better because of the management differences in native (which if you ask me, were stupid).
Under the hood sure, but under that it's also just skewed pixels, so, splitting hairs and technicalities. The difference still remains quads have less management calls overall by comparison.
Plus lets add to that by also pointing out I use a HEAVILY modified and optimized version of the fexcraft render which isn't dependent on any of minecraft's sloppy render code, so that alone is a decent boost and a completely different environment for rendering.
Now if this was GL4+, or GLES, or even DirectX6+, yeah triangles would be better because of the management differences in native (which if you ask me, were stupid).
and I was refering to it being an FPS drop not by CPU but by GPU. imagine several hundred of those being rendered at once. Even at it's lowest value it's an atrocity.
and I was refering to it being an FPS drop not by CPU but by GPU. imagine several hundred of those being rendered at once. Even at it's lowest value it's an atrocity.
This is LWJGL we're talking about, the only time there's proper GPU pass-through is on linux, and even then it's kinda sketchy. So the CPU almost always has to take the brunt of the processing.
I've already tried rendering several hundred at once, and before any proper caching it's only taking about 25% of my FPS, and that's at 16 points per block. That's already less than TC's port does to me from just a few dozen blocks of track.
Most of my hit right now is that I haven't done any proper caching of vertices, so 25% hit isn't even the final number.
This is LWJGL we're talking about, the only time there's proper GPU pass-through is on linux, and even then it's kinda sketchy. So the CPU almost always has to take the brunt of the processing.
I've already tried rendering several hundred at once, and before any proper caching it's only taking about 25% of my FPS, and that's at 16 points per block. That's already less than TC's port does to me from just a few dozen blocks of track.
Most of my hit right now is that I haven't done any proper caching of vertices, so 25% hit isn't even the final number.
You don't seem to know as much about rendering as I do. ACTUAL rasterization is NEVER done CPU-side (except when you don't have a graphics card, in which case how the hell are you able to play minecraft). and 'taking 25% of my FPS' is not a good indicator of the performance hit at all, as it will vary HEAVILY per-user. Trust me, you'll want to have something better than a ton of boxes - maybe some rotated boxes lying on the spline, but not simply a bunch of axis-aligned boxes.
You don't seem to know as much about rendering as I do. ACTUAL rasterization is NEVER done CPU-side (except when you don't have a graphics card, in which case how the hell are you able to play minecraft). and 'taking 25% of my FPS' is not a good indicator of the performance hit at all, as it will vary HEAVILY per-user. Trust me, you'll want to have something better than a ton of boxes - maybe some rotated boxes lying on the spline, but not simply a bunch of axis-aligned boxes.
"maybe some rotated boxes lying on the spline" but that's exactly the image you complained about a performance hit from.... On top of it, there's no difference from axis aligned boxes because the data fed into the render is exactly the same (you should know that if you're so experienced with this stuff).
You wanna get in deeper, TC's current rails use over 600 vertices per block, with every face rendered unless culling gets it, and those culling calls aren't cheap. Add to it, the models are parsed from obj, which means they have to be rendered face by face.
Mine can be set to use less than 150 per block at 4 points per microblock, using the shapebox system which uses optimized groups of quads so it's rendered cube by cube which cuts down on processing even more so (add even more performance to that when i eventually figure out cubestrip rendering).
If you want a good idea of how this performance stuff actually works in minecraft, and not just how it's "supposed" to work, maybe use an actual debugging system that can log all the calls used down to native and how much they strain each of the hardware parts.
I've rewritten minecraft's entire render system and run numerous in-depth tests down to sheer number of native calls and processing logging on both CPU, and GPU, even I/O bandwith. Multiple times, so I have a pretty good idea what I'm dealing with.
But... Tell you what, let's make it interesting, when I update it in a few weeks with the new fully dynamic render system that generates smooth models from a spline, rather than just positioning some some shoddy models, if you still think you can do better, then be my guest, show me how it's done.
(it would be sooner, but I'm moving so, packing boxes, unpacking boxes, bleh).
"maybe some rotated boxes lying on the spline" but that's exactly the image you complained about a performance hit from.... On top of it, there's no difference from axis aligned boxes because the data fed into the render is exactly the same (you should know that if you're so experienced with this stuff).
I meant as in using less boxes but more effectively to keep good model quality.
hello would it be possible to make 2d tracks for traincraft? so basicly curved vanilla tracks etc as while i love the look of the 3d tracks i find there extremely laggy and once you have alot of rails loaded on a map it destroys the frame rate. and while you can use the normal mine craft tracks hight speed trains going around 100kph and up just derail on any turn. and running a mix of traincraft tracks and normal tracks dosent looks great. also would be great if we can make it so you can have tracks that go at 45 degree angles if possible. this might have been suggested before but had not found anyone suggest it. also great mod been using it for years and great work with the 1.7.10 updates.
actually i use the vanilla tracks but as you described turning is weird i would like if they added this but tbh i don't think they will
hello would it be possible to make 2d tracks for traincraft? so basicly curved vanilla tracks etc as while i love the look of the 3d tracks i find there extremely laggy and once you have alot of rails loaded on a map it destroys the frame rate. and while you can use the normal mine craft tracks hight speed trains going around 100kph and up just derail on any turn. and running a mix of traincraft tracks and normal tracks dosent looks great. also would be great if we can make it so you can have tracks that go at 45 degree angles if possible. this might have been suggested before but had not found anyone suggest it. also great mod been using it for years and great work with the 1.7.10 updates.
It's just not possible to make 2 renders for 1 thing. even 2D tracks would need a Flat 3D-Model cuz of their size.
this is kinda what im on about something like this or just a plan its a quick model i did in 3dsmax
Merge your two posts. Otherwise, a mod's gonna get ya.
As for that, it (might) be a possibility, but I wouldn't count on it. We already have 3d tracks and I'm not sure that's in Eternal's agenda, as great of a job he's done thus far.
The Meaning of Life, the Universe, and Everything.
Join Date:
4/19/2011
Posts:
59
Member Details
There is new track for the Rewrite of TC, its based on Vanilla rails and are 3d but don't hurt your FPS and servers and a add bonus they can be any width, dual gauge or Single rail for anyone wants to to do a Monorail and it will have Diagonal track.
I just wanted to show off a neat screenshot I took while playing on one of the worlds I have.
Rio Grande EMD SD70 is assisting a former UP EMD GP7 with its excursion passenger train that is heading southbound, crossing a gorge in a extreme hills biome,
Which webpage? The official one or curse? (the latest release is 011, and isn't linked on the official one yet, they don't update it often.)
Traincraft and TiM official links:
Source code - Traincraft 1.7.10 port
Source code - My 1.7+ Traincraft rewrite & Trains In Motion
Public Traincraft discord chat (we're always hanging around here, text & voice, no download needed to join)
Traincraft official download via curse
the way that is done looks like a performance NIGHTMARE. I'm hoping this form is temporary?
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
XD funny thing is its better than the old rails significantly but yeah its just temp. On another note would anyone be interested in some https://minecraft.curseforge.com/projects/jurassicraft2 Rollingstock? hauling Dinos around in some custom stockcars.
^^ Yes, absolutely.
Dinosaurs being stuffed in railcars? Hey, why not?
Figured it was time for a change.
You would think, which is the point, but I'm using some win 2k-esk methods to accomplish this stuff (I still code like it's 2001), So performance is actually about on par with TC's port, and that's before I've optimized the rendering and adding dynamic shape caching.
Plus client side can define the segments between 4 and 20 per block (default being 16), which helps low-end users even more, and server side it's just an array of vector 6's (a standard spline), so it's pretty low overhead there from the get-go (spline movement calculations are a lot easier on the CPU than the calculus that vanilla and TC currently do).
Traincraft and TiM official links:
Source code - Traincraft 1.7.10 port
Source code - My 1.7+ Traincraft rewrite & Trains In Motion
Public Traincraft discord chat (we're always hanging around here, text & voice, no download needed to join)
Traincraft official download via curse
I'm talking GPU-wise. it's an awful lot of boxes per track, and each box is 12 triangles to render. (though using backface culling can cull it down to as few as 2 per box, depending on the viewing angle)
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
GL11 doesn't render triangles, it renders quads (you can do triangles, but why cut performance in half?).
Besides that it can be reduced to as low as 4 segments per track in config, (1 segment being 20 faces rendered to GL11 directly), which is substantially less than TC now.
Add to it, even with VBO and/or displaylists, most all of the work still falls on the CPU due to the java environment not having proper forwarding to the GPU.
Traincraft and TiM official links:
Source code - Traincraft 1.7.10 port
Source code - My 1.7+ Traincraft rewrite & Trains In Motion
Public Traincraft discord chat (we're always hanging around here, text & voice, no download needed to join)
Traincraft official download via curse
actually, a 'quad' is two triangles defined by 4 points. It still has to be rendered as triangles.
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
Under the hood sure, but under that it's also just skewed pixels, so, splitting hairs and technicalities. The difference still remains quads have less management calls overall by comparison.
Plus lets add to that by also pointing out I use a HEAVILY modified and optimized version of the fexcraft render which isn't dependent on any of minecraft's sloppy render code, so that alone is a decent boost and a completely different environment for rendering.
Now if this was GL4+, or GLES, or even DirectX6+, yeah triangles would be better because of the management differences in native (which if you ask me, were stupid).
Traincraft and TiM official links:
Source code - Traincraft 1.7.10 port
Source code - My 1.7+ Traincraft rewrite & Trains In Motion
Public Traincraft discord chat (we're always hanging around here, text & voice, no download needed to join)
Traincraft official download via curse
and I was refering to it being an FPS drop not by CPU but by GPU. imagine several hundred of those being rendered at once. Even at it's lowest value it's an atrocity.
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
This is LWJGL we're talking about, the only time there's proper GPU pass-through is on linux, and even then it's kinda sketchy. So the CPU almost always has to take the brunt of the processing.
I've already tried rendering several hundred at once, and before any proper caching it's only taking about 25% of my FPS, and that's at 16 points per block. That's already less than TC's port does to me from just a few dozen blocks of track.
Most of my hit right now is that I haven't done any proper caching of vertices, so 25% hit isn't even the final number.
Traincraft and TiM official links:
Source code - Traincraft 1.7.10 port
Source code - My 1.7+ Traincraft rewrite & Trains In Motion
Public Traincraft discord chat (we're always hanging around here, text & voice, no download needed to join)
Traincraft official download via curse
You don't seem to know as much about rendering as I do. ACTUAL rasterization is NEVER done CPU-side (except when you don't have a graphics card, in which case how the hell are you able to play minecraft). and 'taking 25% of my FPS' is not a good indicator of the performance hit at all, as it will vary HEAVILY per-user. Trust me, you'll want to have something better than a ton of boxes - maybe some rotated boxes lying on the spline, but not simply a bunch of axis-aligned boxes.
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
"maybe some rotated boxes lying on the spline" but that's exactly the image you complained about a performance hit from.... On top of it, there's no difference from axis aligned boxes because the data fed into the render is exactly the same (you should know that if you're so experienced with this stuff).
You wanna get in deeper, TC's current rails use over 600 vertices per block, with every face rendered unless culling gets it, and those culling calls aren't cheap. Add to it, the models are parsed from obj, which means they have to be rendered face by face.
Mine can be set to use less than 150 per block at 4 points per microblock, using the shapebox system which uses optimized groups of quads so it's rendered cube by cube which cuts down on processing even more so (add even more performance to that when i eventually figure out cubestrip rendering).
If you want a good idea of how this performance stuff actually works in minecraft, and not just how it's "supposed" to work, maybe use an actual debugging system that can log all the calls used down to native and how much they strain each of the hardware parts.
I've rewritten minecraft's entire render system and run numerous in-depth tests down to sheer number of native calls and processing logging on both CPU, and GPU, even I/O bandwith. Multiple times, so I have a pretty good idea what I'm dealing with.
But... Tell you what, let's make it interesting, when I update it in a few weeks with the new fully dynamic render system that generates smooth models from a spline, rather than just positioning some some shoddy models, if you still think you can do better, then be my guest, show me how it's done.
(it would be sooner, but I'm moving so, packing boxes, unpacking boxes, bleh).
Traincraft and TiM official links:
Source code - Traincraft 1.7.10 port
Source code - My 1.7+ Traincraft rewrite & Trains In Motion
Public Traincraft discord chat (we're always hanging around here, text & voice, no download needed to join)
Traincraft official download via curse
I meant as in using less boxes but more effectively to keep good model quality.
Creator of Metroid Cubed 3, a Metroid-themed mod! Become a donator today!
actually i use the vanilla tracks but as you described turning is weird i would like if they added this but tbh i don't think they will
It's just not possible to make 2 renders for 1 thing. even 2D tracks would need a Flat 3D-Model cuz of their size.
Merge your two posts. Otherwise, a mod's gonna get ya.
As for that, it (might) be a possibility, but I wouldn't count on it. We already have 3d tracks and I'm not sure that's in Eternal's agenda, as great of a job he's done thus far.
Figured it was time for a change.
There is new track for the Rewrite of TC, its based on Vanilla rails and are 3d but don't hurt your FPS and servers and a add bonus they can be any width, dual gauge or Single rail for anyone wants to to do a Monorail and it will have Diagonal track.
I just wanted to show off a neat screenshot I took while playing on one of the worlds I have.
Rio Grande EMD SD70 is assisting a former UP EMD GP7 with its excursion passenger train that is heading southbound, crossing a gorge in a extreme hills biome,