Separate names with a comma.
Discussion in 'Video Cards and Graphics' started by SickBeast, Oct 3, 2005.
splintercell dose not have a SM 2.0 path, only 1.1 and 3.0.
Heh- it is a cool game!
Vertex texture, pixel shader length, dynamic branching, multiple render targets, and minimum 128-bpp (IEEE standard 32-bit floating point) are probably the biggests additions to SM3. Of these features, the ones that SM2 can not computably mimic are the minimum color format and vertex texture. The other features effectively make shader programs run "faster". Basically effects can be done in one pass as opposed to multiple passes, which may generate overhead such as repeated vertex transform (for multi-pass pixel operations, due to instruction length limit). This increase in efficiency is an even bigger advantage once unified shaders are introduced (WGF 2.0, I think?). This is because in current generation hardware, the bottleneck is either at the vertex shaders or the pixel shaders (usually pixel), so one set of shaders will be left without work. But when unified shaders are introduced, all those retransformations of vertices for each pass through different effects will eat up processing resources that can otherwise be used for pixel shading (assuming that pixel operations are the bottlencks here).
However, for current generation of games, I don't think SM3.0 is used even close to its full potential. To put it in perspective, most effect shaders used by games are well under 96 instructions (for one entire effect), which is a SM2.0 limitation. And since the vertex shader isn't exactly taxed, doing multiple passes incur very little time penalty. Instead, what SM3.0 will immediately play a role in is scientific computations, simulations, raytracing on GPUs, etc... (not talking about that new raytracing chip introduced at SIGGRAPH here), since those require lots of lookups, instructions, dynamic branching, and/or search/sort functionality.
*edited to clear up some potential confusion*
I'm a big Lego fan myself, having amassed a pretty huge collection at this point. I need to give that game a try at some point.
Anyway, I don't know what to make of SM3. I bought this 6800 GT for speed last july and didn't really care about SM3 or other features at the time. I still have only one game with SM3-based image quality improvements, SCCT, but the parallax mapping in this game looks quite amazing and it's great to have it just for that. I don't how if the SM2 mode in the 1.4 patch allows this on other cards or not.
As a further note, parallax mapping is an advanced form of bump mapping, not displacement mapping. Distinction between bump mapping and displacement mapping is that the former doesn't affect the geometry of objects, but the latter does (either creates new ones, if the API -- note I used "API", not "hardware", since this is a general algorithm that is not limited to hardware implementations only -- is capable, or modifies existing geometry). Since parallax only changes the lookup of the pixel values (everything is eventually just colors on your screen) during texturing, it does not generate new geometry and is thus not considered to be the same class/family as displacement mapping, but instead that of bump mapping.
Because 2 wasn't available at the time, and I still don't think it is for SC:CS?
Either that or "virtual displacement mapping" as per splintercell's spec sheet.
It's definitely a vertex effect. It modifies the geometry. It is not pixel-related like a water reflection effect.
sorry, mistake post again
I'm sorry...but Firing Squad has it totally wrong.
Steep Parallax Mapping
For the first link, it's a delphi3d article on various forms of "surface mapping" techniques.
The second link is a generic implementation of parallax mapping, done on the pixel shader.
The third link is a new method for parallax mapping.
The fourth link is ATi's own implementation (at least, a brief description of) of parallax mapping and parallax occlusion mapping. Note that in the description, ATi explicitly states that the algorithm is just offsetting the texture coordinates according to the view. Since parallax mapping is possible on SM2.0, this implies there is no texture lookup in the vertex shader, and therefore when the description states "offsetting the texture coordinates," it means that this is done in the pixel shader.
If this isn't enough, you can always do a search on citeseer, the de facto place for CS research papers.
On that note, someone might want to inform Firing Squad of the mistake.
*edited to fix some mistakes*
That IS a great game for kids, especially if they like Legos &/or Star Wars.
Jeff and xtk, you and Brandon are all confusing real with virtual displacement mapping. Virtual displacement mapping, as its name implies, doesn't modify geometry, as you can plainly see if you look at the edge of one of those bumpy stone or brick walls. You'll see the edge is "flat," a straight line, not irregular, like the stones. This is evident in the initial prison cell scene in this nice Oblivion video. I don't know if there's anything particularly advanced about it, other than vis a vis bump mapping. Real displacement mapping is literally on another level.
This effect was also covered at the GF6 launch, when Cevat [sic] from Crytek showed off their Far Cry 1.3 patch effects (which were mistakenly presented as SM3 only by quite a few people, tho Cevat clearly said the effects were SM2 & 3 in the presentation).
Nice posts, dunno. They're at odds with your name.
gac009, SC:CT recently gained a SM2 path. I'm 99.44% sure Anandtech and other sites have an article or at least benches describing the visual differences b/w the SM2 and 3 paths, and there were certainly a few threads on the subject.
I think People that misunderstand why people wer a fan of getting SM3 cards. Its not about using the feature now, it is about the Idea that purchasing one that can do SM3 would eliminate the need to purchase a new card when they can use that card at a lower setting and still be able to get their choice of enabled eye candy. With SM2 cards its like admitting defeat before you purchase knowing that if you keep the card you might not be able to use any of the new toys (very few if any) and might not be able to use your current features that seperate SM2 from SM1.x (butt loads).
When I heard here and a couple of other places that SM3 games might not be coded for SM2 because its the same graphical look but harder to program and is less efficient, I knew that a X8** wasn't a real option for me. I expect my 7800GTX to last me three years even if I have to run my games at 800x600.
By the time SM3 games rock the world and deffiniately by the time SM2.0 is completely stopped being coded for, ATI will have a SM3 card. This is an issue for people who have already purchased their cards (even as far back as a year ago) or are looking for a card right now. People who constantly purchase the new cards or are looking for a vid purchase in the short term future the choice of going SM3 won't be an issue and they will all be ready.
And I'm pretty sure the GeForce 6 series can do "real" displacement mapping with vertex shaders. I'll dig around and see if I can find proof... but I'm 90% sure the displacement mapping advertised by nVidia was not parallax mapping. Whether it can do it with enough speed to be a viable feature in a game is another question though.
*EDIT* HardOCP agree's that SM 3.0 adds "real" displacement mapping.
One of the more major upgrades in Shader Model 3.0 is the addition of Vertex Texture Lookups. What this allows is features like Displacement Mapping. If there is going to be any major difference in image quality comparing Shader Model 3.0 to 2.0 it is going to be with the use of Displacement Mapping. Bump mapping which is currently used now to give the appearance of height in textures is just an illusion. There is no physical difference in the texture, meaning if you look at the texture from the side or dead on you will see that it is still flat, only from far away does bump mapping work. Even then it isn?t the best option since the texture is physically still flat light and shadows do not reflect correctly. The answer is Displacement Mapping which physically adds surface detail by manipulating the height of the texture. Displacement Mapping can even go as far as to create the model itself. Displacement Mapping may be a huge boon to adding realism in games. If developers pick up on this technology and we see it implemented in games, this right here could be the deciding feature that shows the most difference between a game rendered in Shader Model 3.0 and a game rendered in Shader Model 2.0.
So does 3Dvelocity.com...
<a target=_blank class=ftalternatingbarlinklarge href="http://www.3dvelocity.com/reviews/6800ultra/6800u.htm">I'm sure by now you've all heard of bump mapping. Bump Mapping uses shading techniques to make flat surface textures look like they have a a 3d surface when in fact they don't. Using bump mapping, you can make the individual stones in a flat, stone wall texture cast shadows as if they were actually raised.
This is okay in most situations but when lighting in a scene is particularly complex, or when seeing a surface in profile gives away its butt-smooth surface and spoils the illusion, then something more is needed. That something more is Displacement Mapping.
Displacement mapping takes a simple, profile map of an object then physically changes the geometry so it matches the shape. In other words, instead of the Dinosaur head below having "virtual" wrinkles that don't properly interact with a scene's lighting and don't actually exist geometrically, displacement mapping creates real wrinkles out of the mesh of polygons that go to make up the head. This results in more realistic surfaces that can be viewed accurately from any angle and in any lighting.
Vertex Shader 3.0 adds infinite length vertex programs where the operating system and API allows. Dynamic flow control can intelligently allow routing of data within the rendering pipeline so removing many of the previously imposed limitations.
Displacement Mapping is available to the 6800 as a direct result of its shader functionality.</a>
I know...wait, do I?! But thanks.
I don't think Pete was referring to that the GF 6-series (not GirlFriend 6-series, but GeForce 6-series...GirlfFriend 6-series can not be bought for under $500 -- they go for over thousands of dollars to boot, and not to mention the expensive upkeep involved ...but trust me, they're worth every penny) can't do real displacement mapping. I think Pete's just saying FC 1.3 was done on SM2.0, not SM3.0. Either way, GF 6-series support SM3.0. And with SM3.0 comes VS3.0 vertex texture lookups, and hence displacement mapping. So yes, the GF 6-series is capable of real displacement mapping.
*edited for some emoticons...damn, this post-post editing is becoming a habit*
Far Cry does not showcase every single effect that SM 3.0 makes possible. See my edit to my previous post for proof.
*EDIT* Should clarify that too... Far Cry 1.3 does not showcase every single effect SM 3.0 makes possible. HardOCP clearly demonstrates in that scene that real displacement mapping, not parallax mapping, is used. However... that didn't seem to make it into even patch 1.3.
And I'm not saying that it does. I'm not even arguing with you. As a matter of fact, I'm agreeing with you. The point is, in order to do displacement mapping on a hardware pipeline, one would need to use texture lookups at the vertex transform stage. Texture lookups at that stage is only available in the GeForce 6-series, 7-series, and R5x0 classes of GPUs.
Hey, don't take this as if I'm putting down something or another. I'm not. I'm just purely talking about specs, capabilities, and computer algorithms, that's all.
I know you're not... Pete is. Which is why I provided proof that SM 3.0 allows REAL displacement mapping... even if it might be at 5 frames per second on current hardware.
Oh...hrm. Well, I re-read some of the posts, and I think once again, the medium in which we communicate has failed. I think Pete is saying that "Parallax Mapping is done on the Pixel Shaders and Displacement Mapping is done on the Vertex Shaders." Which is, well, exactly what you're saying too. I think the confusion lies with the word "that" in the statement "I'm pretty sure that's a pixel, not vertex shader effect." I think Pete was referring to "that" as Parallax Mapping, not Displacement Mapping.
Actually, technically speaking, one CAN do displacement mapping on the pixel shader (PS1.0 or 2.0). But this requires a pixel march on the offset textures in the projected direction of the eye starting from the far-side projected edge of the texture in such a direction, retaining the closest intersected height differential and its normal while marching across the height fields, and then marching all the way to the other edge of the texture in the projected eye direction. When that is done, update the color to the current reatained value. Of course, this will require at least 128 texture lookups on a 128x128 height map texture...which, saying the least, is a total hog on GPU resources for just one pixel.
You might be right... the impression I got was that Pete was agreeing with Sickbeast that SM 3.0 can't do anything SM 2.0 can't do... it just does it faster. Which is completely false, because Vertex Shader 3.0 IS capable of REAL displacement mapping.
I find it ironic that this post is intended to remove the "BS/uninformed posts" about SM 3.0, and the OP makes a completely false statement. If he had said Pixel Shader 3.0 can't do anything Pixel Shader 2.0b can't do, it can just do it more efficiently, then I would have agreed. But Shader Model 3.0 includes Vertex Shader 3.0, which allows displacement mapping.
Would that alter the geometry of the model? I didn't think the Pixel Shader units could do that...
It wouldn't modify the geometry, no. But the end result would be completely the same. Afterall, all you see are pixel values on the screen. Geometric and topological information is all gone by the time you reach the framebuffer, sadly.
This of it this way: this algorithm effectly pushes part of the vertex stage into the pixel pipeline. All it's basically doing is some bastardized vertex operation in the pixel shader - instead of letting the hardware do the interpolation/z-buffering for you, you do it yourself in the pixel shader. This is basically just like refactoring code, except the wrong way.
HOWEVER, this is one itsy bitsy "little" caveat. I don't think this algorithm handles edges between polygons. So maybe the algorithm is moot.
But as for SM3.0 doing what SM2.0 can't do, there is still 128-bpp which one can't argue out of (unless of course we're going to do 4 passes to fill in the [0-7][8-15][16-23][24-32] bits for each channel...and even then, I'm not sure if the hardware CAN actually do so).
Kind of like the whole GF4 PS 1.3(4?) battlefield 2 debacle?
Ok, this comes directly from the back of my 6600gt box about SM2 vs SM3 (this is what SM3 has that SM2 doesnt)
Up to 65,356 (looping) (compared to Sm2's 512)
Displacement mapping (did you know that if you use D-mapping to mimic something that normal mapping is doing, to produce the same image, it uses less resources?)
Vertex Texture Fetch
Vertex Stream Divider
Dynamic Flow Control
Required Shader Precision is Fp32 (not Fp24 like SM2)
Looping 65,356 shader instructions (compared to a sm2's 96)
Loops and Branches
Dynamic Flow Control
Some links for some reading:
Also, for those who think Sm3 offers no IQ improvement, look at next gen games. The only way they can truly get all of the graphics is by Sm3. If you've read about the Unreal Engine 3, the developers do say that SM3 is used very heavily in the engine. Also, should I mention that most next gen engines started with SLIed 6800gt's? Not only is this for the amount of performance, but it could also be used for Sm3 needs as well.
Now, I am NOT saying "oh, my 6600gt will be great in next gen games because I have sm3." No. I know it wont do well. Frankly, this thread isn't about that though. So dont pull that on me. Still, you have to consider that if I ran a next gen game in Sm2 and Sm3 with the same IQ settings (exactly), running in SM3 would offer at least a slight performance boost.
And I dont see why everyone complains when I mention that you might want to consider getting a SM3 card at this moment...Next gen is coming in a couple months. Might as well have Sm3 on you, because if even a 6800ultra wont do well on Sm3, its likely that an x800xt or whatever wont do any better. So it's not like having SM3 is a losing situation.
Still, if a 6800gt can beat an x850 (higher end version, i believe) in FEAR because it runs in SM3...I dunno, that's pretty impressive.
But for the OP...read those articles. All of these new features allow those IQ improvements, that you claim do not exist, to happen. This is how we get next gen graphics. Period.
So don't get mad at me...the Video section has been quite peaceful for a while without needless SM3 posts (aside from me recommending it ) and then this comes up with a rather interesting OP..."SM3 cannot generate effects that are not possible on SM2; it just can do them faster"...
Sometimes people make me chuckle
Dude there is nothing wrong w/ my original statement; other people here have backed me up on it too.
Welcome back to the thread tho.