Slang's .plan

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

12/13/06

Got A Job To Do

There will be no update here over the next several months.
スポンサーサイト

11/17/06

Geometry Shaders At Work (2)

I wrote a geometry shader that performs silhouette edge detection (it's a good way to learn how geometry shaders work); however, it seems that TRIANGLES_ADJACENCYT for PRIMITIVE_IN is not supported in NVIDIA ForceWare 96.89.

Since 97.02 is a G80-exclusive driver, I hope NVIDIA to shortly release the driver for NV40 as well (I know the implementation of GL_EXT_geometry_shader4 extension in 97.02 is still currently in beta form and I'm not sure whether TRIANGLES_ADJACENCYT is supported in that version or not). But again, I gotta buy a G80 card sooner or later to fully take the advantage of geometry shaders.

----------------------------------------------------------------
!!NVgp4.0
PRIMITIVE_IN TRIANGLES_ADJACENCY;
PRIMITIVE_OUT LINE_STRIP;
VERTICES_OUT 6;
# cgc version 1.6.0011, build date Oct 16 2006 23:39:35
# command line args:
#vendor NVIDIA Corporation
#version 1.6.0.11
#profile gp4gp
#program main
#var float4 gl_Position : $vout.POSITION : HPOS : -1 : 1
#var float4 gl_PositionIn[0] : $vin.VERTEX[0].POSITION : HPOS[0][32] : -1 : 1
#var float4 gl_PositionIn[1] : $vin.VERTEX[1].POSITION : HPOS[1][32] : -1 : 1
#var float4 gl_PositionIn[2] : $vin.VERTEX[2].POSITION : HPOS[2][32] : -1 : 1
#var float4 gl_PositionIn[3] : $vin.VERTEX[3].POSITION : HPOS[3][32] : -1 : 1
#var float4 gl_PositionIn[4] : $vin.VERTEX[4].POSITION : HPOS[4][32] : -1 : 1
#var float4 gl_PositionIn[5] : $vin.VERTEX[5].POSITION : HPOS[5][32] : -1 : 1
TEMP R0, R1, R2;
TEMP RC, HC;
MOV.F R0.xyz, vertex[0].position;
ADD.F R1.xyz, -R0, vertex[2].position;
ADD.F R0.xyz, vertex[4].position, -R0;
MUL.F R2.xyz, R0.zxyw, R1.yzxw;
MAD.F R0.xyz, R0.yzxw, R1.zxyw, -R2;
DP3.F R0.x, R0, -vertex[0].position;
SGT.F R0.x, R0, {0, 0, 0, 0};
TRUNC.U.CC HC.x, R0;
IF NE.x;
MOV.F R0.xyz, vertex[1].position;
ADD.F R1.xyz, -R0, vertex[2].position;
ADD.F R0.xyz, vertex[0].position, -R0;
MUL.F R2.xyz, R0.zxyw, R1.yzxw;
MAD.F R0.xyz, R0.yzxw, R1.zxyw, -R2;
DP3.F R0.x, -vertex[0].position, R0;
SLT.F R0.x, R0, {0, 0, 0, 0};
TRUNC.U.CC HC.x, R0;
IF NE.x;
MOV.F result.position, vertex[0].position;
EMIT;
MOV.F result.position, vertex[2].position;
EMIT;
ENDPRIM;
ENDIF;
MOV.F R0.xyz, vertex[3].position;
ADD.F R1.xyz, -R0, vertex[4].position;
ADD.F R0.xyz, vertex[2].position, -R0;
MUL.F R2.xyz, R0.zxyw, R1.yzxw;
MAD.F R0.xyz, R0.yzxw, R1.zxyw, -R2;
DP3.F R0.x, -vertex[0].position, R0;
SLT.F R0.x, R0, {0, 0, 0, 0};
TRUNC.U.CC HC.x, R0;
IF NE.x;
MOV.F result.position, vertex[2].position;
EMIT;
MOV.F result.position, vertex[4].position;
EMIT;
ENDPRIM;
ENDIF;
MOV.F R0.xyz, vertex[5].position;
ADD.F R1.xyz, vertex[0].position, -R0;
ADD.F R0.xyz, vertex[4].position, -R0;
MUL.F R2.xyz, R0.zxyw, R1.yzxw;
MAD.F R0.xyz, R0.yzxw, R1.zxyw, -R2;
DP3.F R0.x, -vertex[0].position, R0;
SLT.F R0.x, R0, {0, 0, 0, 0};
TRUNC.U.CC HC.x, R0;
IF NE.x;
MOV.F result.position, vertex[4].position;
EMIT;
MOV.F result.position, vertex[0].position;
EMIT;
ENDPRIM;
ENDIF;
ENDIF;
END
# 55 instructions, 3 R-regs
----------------------------------------------------------------

All these low-level GL_NV_geometry_program4 geometry shaders are based on GL_NV_gpu_program4 assembly instruction set.

11/15/06

Geometry Shaders At Work



I've just experimented with the new GL_EXT_geometry_shader4 extension using GeForce 8800 (G80) feature set emulation and GLSL compiler device support enabled by NVemulate.

o GPU: NVIDIA GeForce 6800 GT (NV40)
o Driver: NVIDIA ForceWare 96.89 for 32-bit Windows XP
o OpenGL Version: 2.1.0
o GLSL Version: 1.20 NVIDIA via Cg compiler

Here's the test geometry shader (output as low-level GL_NV_geometry_program4):
----------------------------------------------------------------
!!NVgp4.0
PRIMITIVE_IN TRIANGLES;
PRIMITIVE_OUT TRIANGLE_STRIP;
VERTICES_OUT 6;
# cgc version 1.6.0011, build date Oct 16 2006 23:39:35
# command line args:
#vendor NVIDIA Corporation
#version 1.6.0.11
#profile gp4gp
#program main
#var float4 gl_Position : $vout.POSITION : HPOS : -1 : 1
#var float4 gl_PositionIn[0] : $vin.VERTEX[0].POSITION : HPOS[0][32] : -1 : 1
#var float4 gl_PositionIn[1] : $vin.VERTEX[1].POSITION : HPOS[1][32] : -1 : 1
#var float4 gl_PositionIn[2] : $vin.VERTEX[2].POSITION : HPOS[2][32] : -1 : 1
TEMP R0, R1;
TEMP RC, HC;
MOV.F result.position, vertex[0].position;
EMIT;
MOV.F result.position, vertex[1].position;
EMIT;
MOV.F result.position, vertex[2].position;
EMIT;
ENDPRIM;
MOV.F R0, vertex[1].position;
ADD.F R0, vertex[0].position, R0;
ADD.F R0, R0, vertex[2].position;
MUL.F R0, R0, {0.33333334, 0, 0, 0}.x;
MAD.F R1, vertex[0].position, {2, 0, 0, 0}.x, -R0;
MOV.F result.position, R1;
EMIT;
MAD.F R1, vertex[1].position, {2, 0, 0, 0}.x, -R0;
MOV.F result.position, R1;
EMIT;
MAD.F R0, vertex[2].position, {2, 0, 0, 0}.x, -R0;
MOV.F result.position, R0;
EMIT;
ENDPRIM;
END
# 21 instructions, 2 R-regs
----------------------------------------------------------------

It's quite easy to use as usual. But anyway software emulation is damn slow, so I really need to get a GeForce 8800 video card for further experimentations like stencil shadow volumes extraction and thus IQ/PF comparison against the omnidirectional cubic shadow mapping that I've worked on so far (I am now much more interested in the CUDA technology rather than geometry shaders stuff, though).

11/09/06

Shader Model 4.0 Functionality w/o Windows Vista

OpenGL extension rumor (OpenGL.org Discussion & Help Forums)
http://www.opengl.org/discussion_boards/ubb/ultimatebb.php...

Cass Everitt (an NVIDIA guy) says:

[QUOTE]
Originally posted by Slang:
Are those extensions going to be implemented in ICDs for Windows XP?
[/QUOTE]

Of course!

Now, this is one of the reasons why I use OpenGL primarily; independent from a specific system architecture due to the driver-implementation model.

10/27/06

The Messiah of Interactive 3D Graphics





Or is it just an abandoned, apathetic living dead?

10/09/06

Quote of the Day

While there will continue to be new engines, just like there are new programming languages and off-line renderers, there is going to be much less of a pressing need for them. Some people will still do it because some people like making new things like that. But the chances of it becoming a landmark event for a broader, industrial scale, I think, are less likely.

- John Carmack

09/24/06

Epic Games Outsources To China

Exclusive: Epic Announces Epic China Outsourcing Division (Gamasutra.com)
http://www.gamasutra.com/php-bin/news_index.php?story=10971

Wilbur explained that the cost per man month (including overhead) to produce games in North America is around $9,000, and in Europe and Japan, it's $8,500 per man month. But costs per man month in China are less than $4,000 - hence Epic's choice to keep its core team at Epic's NC offices, but outsource significant amounts of art creation for its games.

09/03/06

View Frustum Culling (2)





flx_vfc_02.m1v (11.9 MB, for a limited time only)
http://www.quakewars.jp/slang/files/videos/flx_vfc_02.m1v

Cubic shadow mapping along with multiple lights is really tough on current-generation graphics hardware.

---

Quote of the Day

Because of the nature of Moore's law, anything that an extremely clever graphics programmer can do at one point can be replicated by a merely competent programmer some number of years later.

- John Carmack

08/04/06

View Frustum Culling



flx_vfc_01.m1v (8.77 MB, for a limited time only)
http://www.quakewars.jp/slang/files/videos/flx_vfc_01.m1v

To be continued.

07/04/06

Dynamic Light & Shadow Culling (2)







flx_dlasc_01.m1v (17.5 MB, for a limited time only)
http://www.quakewars.jp/slang/files/videos/flx_dlasc_01.m1v

Much more optimizations still need to be done.

07/01/06

Dynamic Light & Shadow Culling









To be continued.

06/11/06

Quote of the Day

(snip) I pretty strongly believe that with all of these things that are troublesome in graphics, rather than throwing really complex algorithms at them, they will eventually fall to raw processing power. People write research papers about, "Here's a really tricky algorithm to do that," but it doesn't work in all cases. People who are synthesists and think of those complex algorithms, they really pooh-pooh that. They don't like to hear that because they want it to fall to cleverness rather than raw power; but the way things have consistently, undeniably fallen over the year is to raw power.

- John Carmack

06/07/06

Optimized Portal System (3)



flx_ops_02.m1v (13.0 MB, for a limited time only)
http://www.quakewars.jp/slang/files/videos/flx_ops_02.m1v

Now it works.

---

Quote of the Day

Programming is really just the mundane aspect of expressing a solution to a problem. There are talents that are specifically related to actually coding, but the real issue is being able to grasp problems and devise solutions that are detailed enough to actually be coded.

- John Carmack

05/28/06

Optimized Portal System (2)



Still work in progress.

05/16/06

Working In Germany?

Over the past few weeks, I had been contacted by a certain German game developer (C****k) and maybe I would work for the company from next year...? Of course, I would definitely love to; however, it is unfortunately true that there are multiple barriers to me for living/working in Germany at this point.

---

Optimized Portal System



Work in progress.

04/28/06

Omnidirectional Variance Shadow Mapping



The demo is now available for download.
http://www.quakewars.jp/slang/ovsm.htm

Post your comments at:

Image of the Day - GameDev.net
http://www.gamedev.net/community/forums/topic.asp?topic_id=389865

04/19/06

Omnidirectional Shadow Mapping Using Cube Maps (2)



flx_csm_01.m1v (14.2 MB, for a limited time only)
http://www.quakewars.jp/slang/files/videos/flx_csm_01.m1v

04/15/06

Omnidirectional Shadow Mapping Using Cube Maps









o Soft-Shadowing: 3x3 Percentage-Closer Filtering (PCF)
o Shadow Map Size: 512x512x6 (using an FBO to render-to-cube-map)
o Internal Format: GL_RGBA16F_ARB (4xFP16)

Obviously inspired by the Crytek's Crysis GDC 2006 Trailer.
http://www.gametrailers.com/player.php?id=9881&pl=game&type=mov

To be continued.

02/22/06

Collision Detection with Arbitrary Triangle Meshes (2)





flx_cdwatm_02.m1v (14.5 MB, for a limited time only)
http://www.quake4.jp/slang/files/videos/flx_cdwatm_02.m1v

02/15/06

Collision Detection with Arbitrary Triangle Meshes





flx_cdwatm_01.m1v (8.47 MB, for a limited time only)
http://www.quake4.jp/slang/files/videos/flx_cdwatm_01.m1v

To be continued.
| Top Page | Next Page
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。