More pages: 1 ...
11 ...
21 ...
31 ...
41 ...
51 ...
61 ...
71 ...
81 ...
91 ...
101 ...
111 ...
121 ...
131 ...
141 ...
151 ...
161 ...
171 ...
181 ...
191 ...
201 ...
211 ...
221 ...
231 ...
241 ...
251 ...
261 ...
271 ...
281 ...
291 ...
301 ...
311 ...
313 314 315 316 317 318
319 320 321 322 323 ...
331 ...
341 ...
351 ...
361 ...
365
Query Failed
NeoKenobi
Saturday, January 17, 2004
A very nice bumpmapping technique Humus! I'm not too familiar with this "offset" technique, but does it just multiply different areas of the heightmap with some sort of constant?
Humus
Saturday, January 17, 2004
Andrey S,
maybe I'm just blind, but I don't see any significant difference with your code. I mean, it looks a little different in certain places, but it's not like I can say it looks better or worse.
TomF
Friday, January 16, 2004
The horizon maps don't need to be particularly big, and they also compress quite well - DXTn/S3TC should be very effective. Unfortunately most cards don't yet support compressed volume-texture formats, but there's some in the pipeline that have very similar characteristics to DXTn.
Lengthier discussion in the paper at http://www.eelpi.gotdns.org/papers.html - it's the "self shadowing bumpmap one near the bottom (er... obviously :-)
Dmytry is right, it's always nice to give attribution. Though I do remember doing this offset effect using the old EMBM thing on Matrix G400 cards - obviously this means it will also work on the GF3 and Radeon 7000 cards, which is nice. There's also another even simpler version that Corrinne Yu told me called "parallax texturing" which works better for some bumpmaps and worse for others.
TomF.
Andrey S.
Friday, January 16, 2004
Hello.
Nice demo, Humus.
I've experimented a little with this offset mapping, and got
some interesting results. Replace these 2 lines in the fragment
shader:
float height = tex2D(Elev, texCoord);
float2 newTexCoord = texCoord + viewVec.xy * (height * 2.0 - 1.0) * 0.04;
with this:
float3 n = tex2D(Bump, texCoord) * 2.0 - 1.0;
n = normalize(n);
float height = tex2D(Elev, texCoord) * 2.0 - 1.0;
float nh = max(min(viewVec.z * n.z * height / max( dot(viewVec, n), 0), 1), -1);
float2 newTexCoord = texCoord + viewVec.xy * nh * 0.04;
It seems to me that surfaces begin to look even more "bumpy" especially when the viewer is
close to the surface.
What do you think about this?
Humus
Friday, January 16, 2004
You don't need to use full resolution horizon map. The base and normal maps in the demo are 512x512, but the horizon maps are just 64x64x16.
DuhRoach
Friday, January 16, 2004
Humm... 64k? Are you using some sort of compression? The horizion map demo over at delphi3d.net is around 4mb. If you use an uncompressed angle map at a 4 direction sampling rate, you're already looking at 1MB of data. Am i missing something?
Humus
Thursday, January 15, 2004
Oki, I have added a link to the topic on opengl.org.
Dmytry
Thursday, January 15, 2004
Hello,looks nice,but if you got idea from
http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/011292.html
,_please_ inform about that guy who done that nice offset mapping first.
Regards,
Dmytry Lavrov.
More pages: 1 ...
11 ...
21 ...
31 ...
41 ...
51 ...
61 ...
71 ...
81 ...
91 ...
101 ...
111 ...
121 ...
131 ...
141 ...
151 ...
161 ...
171 ...
181 ...
191 ...
201 ...
211 ...
221 ...
231 ...
241 ...
251 ...
261 ...
271 ...
281 ...
291 ...
301 ...
311 ...
313 314 315 316 317 318
319 320 321 322 323 ...
331 ...
341 ...
351 ...
361 ...
365