..after reading some stuff, I realized that renderer rendering actually behind scene, twice same geometry with applied lightmap (in case that geometry can carry 2 UV map sets as B3D file format)...so, maybe i get all together wrong, but is that mean that Blitz3D actually doing that behind scene?? Rendering twice same geometry, once for difuse textures /UV map1/ and second pass for Lightmap /UV map2/ ?? How Blitz dealing with it?? Using Vertex buffer or what?? I would like to hear really some serious answers on to this question regarding Blitz3D, from SimonH or Mark or whoever for sure knows whats going on behind scene...thanks in advance..
Lightmap Render
Miscellaneous Forums/General Discussion/Lightmap Render "whoever for sure knows whats going on behind scene"
nobody.
I only know if your graphicscard cannot handle the number of texture layers of your model then it will use additional geometry to emulate them. Most cards allow at least 4 layers.
nobody.
I only know if your graphicscard cannot handle the number of texture layers of your model then it will use additional geometry to emulate them. Most cards allow at least 4 layers.
Unless you've got the most ancient videocard still working, or you've somehow disable multitexturing, no, it's not rendering the geometry twice.
..one of the reasons is also respond from 3Impact tech guy who told me that also, regarding my question about lightmapping (they using 2 identical meshes for difuse textures and lightmap), so i asked him about polycount and performance drop, and his answer was that actually every engine out there basically rendering same geometry 2 times, if base geometry can store let say 2 UV map sets, so for each UV map set, one render pass...so i was a bit confused...
3Impact does do it in two passes, yeah, I remember that. It's complete cobblers to say that most engines do it like that though. Multitexturing has been around for years. I mean you are still rendering everything twice, yeah, but you're doing it simultaneously. Not in two passes.
whats going on with 3Impact polycount/performance?? I mean if I load my level about 50K polys (quite okay and nice), it means actually that I'm pushing in to system 100K polys with lightmap included...so i asked him that and he said, NO, becouse they using vertex buffer so there is no performance impact of that kind (slow down becouse double poly count) and i was again confused, becouse, no matter what they do, they have to store somewhere those polygons...
I think the issue here is 3Impact's crappy art pipeline. They only seem to use the .x format, which appears not to support two UV channels. Without two UV channels in your model, no lightmapping, no multitexturing, two passes, it all stems from that.
Yeah, they tried to fob me off with a bunch of old pony about how vertex buffers meant that it wasn't slower to render everything twice too. I didn't believe it either.
Yeah, they tried to fob me off with a bunch of old pony about how vertex buffers meant that it wasn't slower to render everything twice too. I didn't believe it either.
Vertex buffers are faster because the data is loaded into gfx card memory. There would still be a performance hit at some point though.
Some info I got from here explains the vertex buffer.
http://www.courseptr.com/ptr_detail.cfm?group=Game%20Development&subcat=Programming&isbn=1-59200-585-3
"A vertex buffer is just a place where you store the points that make up a polygon so thatDirect3D can draw it. You can have many vertex buffers in your program—one for each triangle if you wish. It is common to use a vertex buffer for each 3D object in your game so that it is possible to draw each object with a simple reusable drawing function."
"Streaming the vertices and textures from the vertex buffer into the scene is handled much more quickly by a hard-coded chip than it is by software."
Some info I got from here explains the vertex buffer.
http://www.courseptr.com/ptr_detail.cfm?group=Game%20Development&subcat=Programming&isbn=1-59200-585-3
"A vertex buffer is just a place where you store the points that make up a polygon so thatDirect3D can draw it. You can have many vertex buffers in your program—one for each triangle if you wish. It is common to use a vertex buffer for each 3D object in your game so that it is possible to draw each object with a simple reusable drawing function."
"Streaming the vertices and textures from the vertex buffer into the scene is handled much more quickly by a hard-coded chip than it is by software."
and his answer was that actually every engine out there basically rendering same geometry 2 times
This makes me glad I'm not using 3Impact. That is completely untrue - most video cards can render anywhere from 2 - 32 texture layers in a single pass. This means that you're not duplicating polygons if your engine supports this feature (like Blitz3D, Ogre, etc.) In fact, I can't believe that 3Impact doesn't support this - it's insane.
so i asked him that and he said, NO, becouse they using vertex buffer so there is no performance impact of that kind (slow down becouse double poly count)
Again, he is grossly incorrect.
The vertex/index buffers store your mesh data on the video card (usually) so you don't have to upload the data every frame (which would be ridiculous - nobody does this anymore). Saying that an engine uses hardware buffers is almost like saying "Hey! My game engine doesn't have a Delay(500) in the main loop!"
Vertex buffer or no vertex buffer, drawing something twice takes 2x the time (minus state changes) - there's no way around that.
"whoever for sure knows whats going on behind scene"
Well, according to the Blitz3D docs:
A little note about multitexturing and slowdown. Graphics cards support a maximum amount of textures per object, which can be used with very little, if any, slowdown. For most cards this is two, but for a GeForce3 it is four. However, once you use more than this amount, Blitz will emulate the effect itself by duplicating objects and textures. Obviously, this may then cause slowdown.
Fortunately, it appears that Blitz3D doesn't duplicate polygons all the time - only when the capabilities of your video card are exceeded (which makes sense).
I honestly can't figure why 3Impact always "emulates" multitexturing when practically every video card out there is capable of multitexturing at the hardware level.
I honestly can't figure why 3Impact always "emulates" multitexturing when practically every video card out there is capable of multitexturing at the hardware level.
As I said, I think it's just a question of the crappy artpath. They're not loading a second UV channel, so they can't multitexture with different texture coordinates. Of course, it would be trivial to code it such that you load the second mesh and transfer UV coordinates to the first mesh in code, but they evidently can't be bothered when they can fob people off with a load of old pony about vertex buffers.