gdalgorithms-list Mailing List for Game Dev Algorithms (Page 1417)
Brought to you by:
vexxed72
You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(390) |
Aug
(767) |
Sep
(940) |
Oct
(964) |
Nov
(819) |
Dec
(762) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(680) |
Feb
(1075) |
Mar
(954) |
Apr
(595) |
May
(725) |
Jun
(868) |
Jul
(678) |
Aug
(785) |
Sep
(410) |
Oct
(395) |
Nov
(374) |
Dec
(419) |
2002 |
Jan
(699) |
Feb
(501) |
Mar
(311) |
Apr
(334) |
May
(501) |
Jun
(507) |
Jul
(441) |
Aug
(395) |
Sep
(540) |
Oct
(416) |
Nov
(369) |
Dec
(373) |
2003 |
Jan
(514) |
Feb
(488) |
Mar
(396) |
Apr
(624) |
May
(590) |
Jun
(562) |
Jul
(546) |
Aug
(463) |
Sep
(389) |
Oct
(399) |
Nov
(333) |
Dec
(449) |
2004 |
Jan
(317) |
Feb
(395) |
Mar
(136) |
Apr
(338) |
May
(488) |
Jun
(306) |
Jul
(266) |
Aug
(424) |
Sep
(502) |
Oct
(170) |
Nov
(170) |
Dec
(134) |
2005 |
Jan
(249) |
Feb
(109) |
Mar
(119) |
Apr
(282) |
May
(82) |
Jun
(113) |
Jul
(56) |
Aug
(160) |
Sep
(89) |
Oct
(98) |
Nov
(237) |
Dec
(297) |
2006 |
Jan
(151) |
Feb
(250) |
Mar
(222) |
Apr
(147) |
May
(266) |
Jun
(313) |
Jul
(367) |
Aug
(135) |
Sep
(108) |
Oct
(110) |
Nov
(220) |
Dec
(47) |
2007 |
Jan
(133) |
Feb
(144) |
Mar
(247) |
Apr
(191) |
May
(191) |
Jun
(171) |
Jul
(160) |
Aug
(51) |
Sep
(125) |
Oct
(115) |
Nov
(78) |
Dec
(67) |
2008 |
Jan
(165) |
Feb
(37) |
Mar
(130) |
Apr
(111) |
May
(91) |
Jun
(142) |
Jul
(54) |
Aug
(104) |
Sep
(89) |
Oct
(87) |
Nov
(44) |
Dec
(54) |
2009 |
Jan
(283) |
Feb
(113) |
Mar
(154) |
Apr
(395) |
May
(62) |
Jun
(48) |
Jul
(52) |
Aug
(54) |
Sep
(131) |
Oct
(29) |
Nov
(32) |
Dec
(37) |
2010 |
Jan
(34) |
Feb
(36) |
Mar
(40) |
Apr
(23) |
May
(38) |
Jun
(34) |
Jul
(36) |
Aug
(27) |
Sep
(9) |
Oct
(18) |
Nov
(25) |
Dec
|
2011 |
Jan
(1) |
Feb
(14) |
Mar
(1) |
Apr
(5) |
May
(1) |
Jun
|
Jul
|
Aug
(37) |
Sep
(6) |
Oct
(2) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
(7) |
Mar
|
Apr
(4) |
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(10) |
2013 |
Jan
|
Feb
(1) |
Mar
(7) |
Apr
(2) |
May
|
Jun
|
Jul
(9) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
(14) |
Feb
|
Mar
(2) |
Apr
|
May
(10) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(12) |
Nov
|
Dec
(1) |
2016 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
From: Ron L. <ro...@do...> - 2000-08-09 23:25:26
|
----- Original Message ----- From: "Kelmenson, Dan" <Dan...@br...> To: <gda...@li...> Sent: Wednesday, August 09, 2000 2:34 PM Subject: RE: [Algorithms] Up Vector in Projection Matrix > > -----Original Message----- > > From: Pai-Hung Chen [mailto:pa...@ac...] > > > > > > > > When you specify a point or direction to "look at", you have only > > specified > > > two of the degrees of freedom of the system. That object > > could be in the > > > middle of the screen - either upside-down - or right way up > > - or at any > > > 'roll' angle in between. > > > > > > The 'up' vector only has to be enough to resolve that issue > > - and only one > > > of its degrees of freedom is needed. Hence, there are a > > wide variety of > > > vectors that will do the job. The only constraint is that > > the up vector > > > and the 'look direction' are not parallel. > > > > > > Hence, so long as your character can't look absolutely > > vertically upwards > > > or absolutely vertically downwards, an 'up' vector of > > (0,1,0) will do > > fine. > > > > That explains everything (though I don't know why/how the > > underlying math > > works). An ever-confusing question got explained! Thanks a lot! :-) > > > > The most likely reason the math worked (the reason the math worked in my > program, and most likely in yours...) is that the main use of the 'up' > vector is crossing it with the forward/view direction. As long as your > character/camera doesn't lean to the side, the true (0,1,0) up vector and > the actual perpendicular-to-forward up vector will both be coplanar with the > forward vector, and therefore give you the same cross product. > Another way to think about it is that the "look-at" functions in the various APIs and toolkits do not require that the up vector argument be perpendicular to the look-at vector argument, but only that they be linearly independent. Then it's a fact that there is a unique unit up vector that IS perpendicular to the look-at vector argument, in the plane determined by the two vector arguments (why they must be linearly independent) and pointing, in that plane, to the same side of the argument look-at vector as points the argument up vector. The API look-at routine computes that perpendicular up vector from the argument vectors, either by iterated cross products or, more likely, by the Gram-Schmidt formula, to use in constructing the correct view matrix. |
From: Kelmenson, D. <Dan...@br...> - 2000-08-09 21:35:47
|
> -----Original Message----- > From: Pai-Hung Chen [mailto:pa...@ac...] > > > > > When you specify a point or direction to "look at", you have only > specified > > two of the degrees of freedom of the system. That object > could be in the > > middle of the screen - either upside-down - or right way up > - or at any > > 'roll' angle in between. > > > > The 'up' vector only has to be enough to resolve that issue > - and only one > > of its degrees of freedom is needed. Hence, there are a > wide variety of > > vectors that will do the job. The only constraint is that > the up vector > > and the 'look direction' are not parallel. > > > > Hence, so long as your character can't look absolutely > vertically upwards > > or absolutely vertically downwards, an 'up' vector of > (0,1,0) will do > fine. > > That explains everything (though I don't know why/how the > underlying math > works). An ever-confusing question got explained! Thanks a lot! :-) > The most likely reason the math worked (the reason the math worked in my program, and most likely in yours...) is that the main use of the 'up' vector is crossing it with the forward/view direction. As long as your character/camera doesn't lean to the side, the true (0,1,0) up vector and the actual perpendicular-to-forward up vector will both be coplanar with the forward vector, and therefore give you the same cross product. Dan Kelmenson Mattel Interactive |
From: Pai-Hung C. <pa...@ac...> - 2000-08-09 21:07:20
|
In a HW T&L setting (GeForce), are VIPM/VDPM really worth the extra management cost omposed on CPU? Or a simple Quadtree/Octree paradigm will suffice, in which I may well just send the un-LODed polys to the HW T&L pipeline that is so fast at handling huge amount of polys that it still beats the LOD optimization? Thank you, Pai-Hung Chen |
From: Pai-Hung C. <pa...@ac...> - 2000-08-09 20:41:21
|
> I'm no D3D expert - but I'll presume this is similar to the OpenGL 'glLookAt' > stuff. > > When you specify a point or direction to "look at", you have only specified > two of the degrees of freedom of the system. That object could be in the > middle of the screen - either upside-down - or right way up - or at any > 'roll' angle in between. > > The 'up' vector only has to be enough to resolve that issue - and only one > of its degrees of freedom is needed. Hence, there are a wide variety of > vectors that will do the job. The only constraint is that the up vector > and the 'look direction' are not parallel. > > Hence, so long as your character can't look absolutely vertically upwards > or absolutely vertically downwards, an 'up' vector of (0,1,0) will do fine. That explains everything (though I don't know why/how the underlying math works). An ever-confusing question got explained! Thanks a lot! :-) Pai-Hung Chen |
From: Daniel R. <dan...@ho...> - 2000-08-09 20:41:15
|
>From: "Pai-Hung Chen" <pa...@ac...> >Reply-To: gda...@li... >To: <gda...@li...> >Subject: Re: [Algorithms] View-Depend vs. View-Independent LOD >Date: Wed, 9 Aug 2000 13:26:06 -0700 > >Hi, > > > VIPM is where your collapse order is fixed - the only thing the >observer's > > position does is choose how many tris to expand/collapse to. > > VDPM varies the order of collapse depending on where the view is, so >bits > > further away from the camera get collapsed before bits near the camera - > > stuff like that. > >Does this mean VIPM collapses polys *evenly* across the whole mesh so that >polys get the same degree of collapse regardless of their distance to the >viewpoint, while in VDPM farer polys are collapsed more heavily than nearer >polys? exactly, this is one of the typical behaviours ________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com |
From: Pai-Hung C. <pa...@ac...> - 2000-08-09 20:31:09
|
Hi, > VIPM is where your collapse order is fixed - the only thing the observer's > position does is choose how many tris to expand/collapse to. > VDPM varies the order of collapse depending on where the view is, so bits > further away from the camera get collapsed before bits near the camera - > stuff like that. Does this mean VIPM collapses polys *evenly* across the whole mesh so that polys get the same degree of collapse regardless of their distance to the viewpoint, while in VDPM farer polys are collapsed more heavily than nearer polys? Thank you, Pai-Hung Chen |
From: Stephen J B. <sj...@li...> - 2000-08-09 20:18:01
|
On Wed, 9 Aug 2000, Pai-Hung Chen wrote: > I am manipulating projection matrix in my D3D program so that the player can > lift up/down his head to view the world. I do modify the viewing-direction > component of the projection matrix but always leave the "up-direction" > component as (0, 1, 0). I think this should not work theoretically (at > least introduce some weird effect). However, it DOES work even I don't > modify the "up-direction" component (such that it is perpendicular to the > "viewing-direction"). I'm no D3D expert - but I'll presume this is similar to the OpenGL 'glLookAt' stuff. When you specify a point or direction to "look at", you have only specified two of the degrees of freedom of the system. That object could be in the middle of the screen - either upside-down - or right way up - or at any 'roll' angle in between. The 'up' vector only has to be enough to resolve that issue - and only one of its degrees of freedom is needed. Hence, there are a wide variety of vectors that will do the job. The only constraint is that the up vector and the 'look direction' are not parallel. Hence, so long as your character can't look absolutely vertically upwards or absolutely vertically downwards, an 'up' vector of (0,1,0) will do fine. Steve Baker (817)619-2657 (Vox/Vox-Mail) L3Com/Link Simulation & Training (817)619-2466 (Fax) Work: sj...@li... http://www.link.com Home: sjb...@ai... http://web2.airmail.net/sjbaker1 |
From: Daniel R. <dan...@ho...> - 2000-08-09 20:13:29
|
(think about progressive mesh / mmr lod) if you would crate a big landscape an choose its triangle count via lod and change it completely it's View Independant if you use a algorithm to calculate which landscpae point should be colapsed you will do that mostly via: far away => many collapses near => few collapes and so this far/near is View Dependant hope this helps, re...@ma... >From: Tom Forsyth <to...@mu...> >Reply-To: gda...@li... >To: gda...@li... >Subject: RE: [Algorithms] View-Depend vs. View-Independent LOD >Date: Wed, 9 Aug 2000 20:05:51 +0100 > >VIPM is where your collapse order is fixed - the only thing the observer's >position does is choose how many tris to expand/collapse to. > >VDPM varies the order of collapse depending on where the view is, so bits >further away from the camera get collapsed before bits near the camera - >stuff like that. > >That's it. > >Tom Forsyth - Muckyfoot bloke. >Whizzing and pasting and pooting through the day. > > > -----Original Message----- > > From: Pai-Hung Chen [mailto:pa...@ac...] > > Sent: 09 August 2000 19:57 > > To: gda...@li... > > Subject: [Algorithms] View-Depend vs. View-Independent LOD > > > > > > Hi, > > > > I've heard that there are two kinds of LOD: view-dependent and > > view-independent. Could somebody briefly explain what the essential > > difference between the two? > > > > Thanks in advance, > > > > Pai-Hung Chen > >_______________________________________________ >GDAlgorithms-list mailing list >GDA...@li... >http://lists.sourceforge.net/mailman/listinfo/gdalgorithms-list ________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com |
From: Stephen J B. <sj...@li...> - 2000-08-09 20:08:42
|
On Wed, 9 Aug 2000, Pai-Hung Chen wrote: > I've heard that there are two kinds of LOD: view-dependent and > view-independent. Could somebody briefly explain what the essential > difference between the two? * View-independent depends only on range to the object. * View-dependent also depends on the orientation of the object with respect to the eye. Hence, view-independent is generally easier to compute - but can't reduce the polygon count quite so agressively as view-dependent LOD can. Steve Baker (817)619-2657 (Vox/Vox-Mail) L3Com/Link Simulation & Training (817)619-2466 (Fax) Work: sj...@li... http://www.link.com Home: sjb...@ai... http://web2.airmail.net/sjbaker1 |
From: Pai-Hung C. <pa...@ac...> - 2000-08-09 19:43:46
|
Hi, I generate a huge, complicated terrain mesh from a heightmap. How can I generate a realistic texture bitmap and corresponding UV coords for the mesh? I was directed to search the archive with some subject titles. But the archive search seems not to work properly and I always get nothing in return. Could someone give some help on this? Thanks in advance, Pai-Hung Chen |
From: Pai-Hung C. <pa...@ac...> - 2000-08-09 19:32:22
|
Hi, I am manipulating projection matrix in my D3D program so that the player can lift up/down his head to view the world. I do modify the viewing-direction component of the projection matrix but always leave the "up-direction" component as (0, 1, 0). I think this should not work theoretically (at least introduce some weird effect). However, it DOES work even I don't modify the "up-direction" component (such that it is perpendicular to the "viewing-direction"). I do know different up-vector, when setup reasonably, can have different effect with the same direction-vector. But what if up-vector is setup unreasonably (impossible to happen in the real world)? Could someone give me some idea? Thanks in advance, Pai-Hung Chen |
From: Corrinne Y. <cor...@ho...> - 2000-08-09 19:24:16
|
----- Original Message ----- From: "Tom Forsyth" <to...@mu...> To: <gda...@li...> Sent: Wednesday, August 09, 2000 2:05 PM Subject: RE: [Algorithms] View-Depend vs. View-Independent LOD -- Tom F. described both PM's very well below. I am just adding a little. > VIPM is where your collapse order is fixed - the only thing the observer's > position does is choose how many tris to expand/collapse to. -- VIPM generally has a higher degree of precomputability. > VDPM varies the order of collapse depending on where the view is, so bits > further away from the camera get collapsed before bits near the camera - > stuff like that. -- VDPM theoretically has fewer screenspace collapse artifact. It generally has higher realtime computation costs. -- For both PM's evaluate your PM marching costs versus your rasterization costs. If marching costs you more than just rendering them, render them out. :) |
From: Kamil B. <no...@te...> - 2000-08-09 19:23:15
|
Hello Lionel, Wednesday, August 09, 2000, 3:48:29 PM, you wrote: > Could anybody point me on a url, code source, algo for removing the noise of > an image, with FFT ? .. and I'm additionally looking URLs about DCT, DFT and some topics from rendering: volumetric lightning and global illumintaion problem, and special effects (eg. like fire/water rendering) and all related... I'm looking for theory rather than sourcecodes, and rather advanced things - I know basics of these things... Thx in advance. -- Best regards, Kamil Burzynski |
From: Tom F. <to...@mu...> - 2000-08-09 19:11:28
|
VIPM is where your collapse order is fixed - the only thing the observer's position does is choose how many tris to expand/collapse to. VDPM varies the order of collapse depending on where the view is, so bits further away from the camera get collapsed before bits near the camera - stuff like that. That's it. Tom Forsyth - Muckyfoot bloke. Whizzing and pasting and pooting through the day. > -----Original Message----- > From: Pai-Hung Chen [mailto:pa...@ac...] > Sent: 09 August 2000 19:57 > To: gda...@li... > Subject: [Algorithms] View-Depend vs. View-Independent LOD > > > Hi, > > I've heard that there are two kinds of LOD: view-dependent and > view-independent. Could somebody briefly explain what the essential > difference between the two? > > Thanks in advance, > > Pai-Hung Chen |
From: Pai-Hung C. <pa...@ac...> - 2000-08-09 19:01:44
|
Hi, I've heard that there are two kinds of LOD: view-dependent and view-independent. Could somebody briefly explain what the essential difference between the two? Thanks in advance, Pai-Hung Chen |
From: Charles B. <cb...@cb...> - 2000-08-09 18:18:19
|
Hi Jeff, really, you should be including UV's and RGB's and Normals as part of the quadric error metric, so that this kind of thing should be detected automagically, and should be put late in the collapse list by the system. I've found that if you use a proper (eg. comprehensive and robust) error metric, then almost zero artist intervention is necessary. In fact, I find that the system is generally much better at ordering collapses than artists are. Of course, there are exceptions, which usually occur because of the fact that I'm not actually looking in the texture bits; eg. changing the uv's slightly in a region of the texture which is very high frequency produces much more visual error than if you change the uv's in a very low frequency region of the texture. To handle this correctly, you do need some sort of artist cue, as you propose. I like Tom's method of reducing to a specific mesh. At 10:06 AM 8/9/2000 -0700, you wrote: >Now the problem as you would guess is you have the face with coordinates like (1,0) ----- (0,0) ---- (1,0). Obviously more granular then that. There are no texture coordinate discontinuities so the algorithm says it is ok. The surface of the face is roughly flat so the internal vertex and edges are good candidates for collapse. However, you then get the nice situation of (1,0) ------ (1,0). Doesn't look so hot. I have the artists tag reflected seam vertices as uncollapsable until very late in the order.> -------------------------------------- Charles Bloom www.cbloom.com |
From: Tom F. <to...@mu...> - 2000-08-09 17:46:35
|
Curious - I never had any problem with it, and our artists mirror things all over the place. I suspect we're using slightly different equations to find our surface-local basis matrices. I'll have to check the code to see exactly what equations I'm using, but I'm pretty sure I calculate the N, U and V basis vectors independently of each other (for each, you just use vertex positions and the factor you are interested in, so U is never used to calculate V's vector and vice versa), which means that the whole "handedness" thing just isn't an issue as far as texture coords. As long as the triangle indices are ordered clockwise, it all just works. Tom Forsyth - Muckyfoot bloke. Whizzing and pasting and pooting through the day. > -----Original Message----- > From: Sim Dietrich [mailto:SDi...@nv...] > Sent: 09 August 2000 18:29 > To: 'gda...@li...' > Subject: RE: [Algorithms] VIPM and UV texturing > > > This mirroring is a huge problem when doing per-pixel > lighting with DOT3 > bump mapping, because texels don't have a facing. In some > cases, you can > detect backwards facing textures and just flip the local > coordinate system, > but not in the case you mention below. > > -----Original Message----- > From: Jeff Lander [mailto:je...@di...] > Sent: Wednesday, August 09, 2000 10:06 AM > To: gda...@li... > Subject: Re: [Algorithms] VIPM and UV texturing > > > Hi all. New to this discussion but I have recently had a > couple of projects > where this issue has been very important. > > The issue you bring up about texture coordinates and any sort > of mesh LOD > system is critical. That is why I insist that the LOD tools > allow artists > to hand designate edges that will not collapse. Any > algorithmic method you > try and find will fail in certain cases. The algorithms > handle texture > projections like sphere and cylinder wraps pretty well but > arbitrary UV > texturing is a real problem. > > One particular problem I will share that comes up often is > when texturing > characters. My system automatically will preserve vertices that have > texture coordinate discontinuities. However, artists will > often model a > character with only half of the texture (particularly in the > face) then just > reflect the texture coords to save texture space. > > Now the problem as you would guess is you have the face with > coordinates > like (1,0) ----- (0,0) ---- (1,0). Obviously more granular > then that. > There are no texture coordinate discontinuities so the > algorithm says it is > ok. The surface of the face is roughly flat so the internal > vertex and > edges are good candidates for collapse. However, you then > get the nice > situation of (1,0) ------ (1,0). Doesn't look so hot. I > have the artists > tag reflected seam vertices as uncollapsable until very late > in the order. > > Let me paraphrase you by saying the algorithms are most efficient when > working on trivially textured objects. Anything else > requires good artist > tools and some TLC. > > -Jeff |
From: Tom F. <to...@mu...> - 2000-08-09 17:37:42
|
This is also solved if you start with a low-poly mesh from the artists, tesselate and displace up to a high-poly mesh, then VIPM down again, but preserving the original edges. Because the tesselation only uses linear interpolation for non-geometry attributes, you don't have to deal with nasty cases like this. Fortunately, coz they are a real pain. http://www.muckyfoot.com/downloads/tom.shtml Tom Forsyth - Muckyfoot bloke. Whizzing and pasting and pooting through the day. > -----Original Message----- > From: Jeff Lander [mailto:je...@di...] > Sent: 09 August 2000 18:06 > To: gda...@li... > Subject: Re: [Algorithms] VIPM and UV texturing > > > Hi all. New to this discussion but I have recently had a > couple of projects where this issue has been very important. > > The issue you bring up about texture coordinates and any sort > of mesh LOD system is critical. That is why I insist that > the LOD tools allow artists to hand designate edges that will > not collapse. Any algorithmic method you try and find will > fail in certain cases. The algorithms handle texture > projections like sphere and cylinder wraps pretty well but > arbitrary UV texturing is a real problem. > > One particular problem I will share that comes up often is > when texturing characters. My system automatically will > preserve vertices that have texture coordinate > discontinuities. However, artists will often model a > character with only half of the texture (particularly in the > face) then just reflect the texture coords to save texture space. > > Now the problem as you would guess is you have the face with > coordinates like (1,0) ----- (0,0) ---- (1,0). Obviously > more granular then that. There are no texture coordinate > discontinuities so the algorithm says it is ok. The surface > of the face is roughly flat so the internal vertex and edges > are good candidates for collapse. However, you then get the > nice situation of (1,0) ------ (1,0). Doesn't look so hot. > I have the artists tag reflected seam vertices as > uncollapsable until very late in the order. > > Let me paraphrase you by saying the algorithms are most > efficient when working on trivially textured objects. > Anything else requires good artist tools and some TLC. > > -Jeff |
From: Sim D. <SDi...@nv...> - 2000-08-09 17:29:23
|
This mirroring is a huge problem when doing per-pixel lighting with DOT3 bump mapping, because texels don't have a facing. In some cases, you can detect backwards facing textures and just flip the local coordinate system, but not in the case you mention below. -----Original Message----- From: Jeff Lander [mailto:je...@di...] Sent: Wednesday, August 09, 2000 10:06 AM To: gda...@li... Subject: Re: [Algorithms] VIPM and UV texturing Hi all. New to this discussion but I have recently had a couple of projects where this issue has been very important. The issue you bring up about texture coordinates and any sort of mesh LOD system is critical. That is why I insist that the LOD tools allow artists to hand designate edges that will not collapse. Any algorithmic method you try and find will fail in certain cases. The algorithms handle texture projections like sphere and cylinder wraps pretty well but arbitrary UV texturing is a real problem. One particular problem I will share that comes up often is when texturing characters. My system automatically will preserve vertices that have texture coordinate discontinuities. However, artists will often model a character with only half of the texture (particularly in the face) then just reflect the texture coords to save texture space. Now the problem as you would guess is you have the face with coordinates like (1,0) ----- (0,0) ---- (1,0). Obviously more granular then that. There are no texture coordinate discontinuities so the algorithm says it is ok. The surface of the face is roughly flat so the internal vertex and edges are good candidates for collapse. However, you then get the nice situation of (1,0) ------ (1,0). Doesn't look so hot. I have the artists tag reflected seam vertices as uncollapsable until very late in the order. Let me paraphrase you by saying the algorithms are most efficient when working on trivially textured objects. Anything else requires good artist tools and some TLC. -Jeff At 06:44 PM 8/9/2000 +1000, you wrote: > > Well, I think the thing you missed is that VIPM is mainly aimed >towards > > meshes that are more like skinned meshes (ie, all points only have a >single > > vertex associated with them - Hence each set of adjacent triangles must be > > specifiable as a strip). I like to call these sort of meshes, highly > > connected meshes (HCM), for the simple purpose that with appearance to the > > renderer, they share vertices, and are therefore connected. > >I cite different vertices because the actual UV coords are different >(eg. a vertex is NOT just gemoetry, as in the D3D definition) > >Doesn't anyone use large meshes that are textured using multiple textures >with VIPM, >in that you would want the mesh as a whole to reduce, not the similarly >textured "pieces" ? > >What I'm tending to now assume is that most users of VIPM are using it on >trivially textured >objects ... would this be a fair assumption, or once again have I missed >something ? _______________________________________________ GDAlgorithms-list mailing list GDA...@li... http://lists.sourceforge.net/mailman/listinfo/gdalgorithms-list |
From: Jeff L. <je...@di...> - 2000-08-09 17:07:46
|
Hi all. New to this discussion but I have recently had a couple of projects where this issue has been very important. The issue you bring up about texture coordinates and any sort of mesh LOD system is critical. That is why I insist that the LOD tools allow artists to hand designate edges that will not collapse. Any algorithmic method you try and find will fail in certain cases. The algorithms handle texture projections like sphere and cylinder wraps pretty well but arbitrary UV texturing is a real problem. One particular problem I will share that comes up often is when texturing characters. My system automatically will preserve vertices that have texture coordinate discontinuities. However, artists will often model a character with only half of the texture (particularly in the face) then just reflect the texture coords to save texture space. Now the problem as you would guess is you have the face with coordinates like (1,0) ----- (0,0) ---- (1,0). Obviously more granular then that. There are no texture coordinate discontinuities so the algorithm says it is ok. The surface of the face is roughly flat so the internal vertex and edges are good candidates for collapse. However, you then get the nice situation of (1,0) ------ (1,0). Doesn't look so hot. I have the artists tag reflected seam vertices as uncollapsable until very late in the order. Let me paraphrase you by saying the algorithms are most efficient when working on trivially textured objects. Anything else requires good artist tools and some TLC. -Jeff At 06:44 PM 8/9/2000 +1000, you wrote: > > Well, I think the thing you missed is that VIPM is mainly aimed >towards > > meshes that are more like skinned meshes (ie, all points only have a >single > > vertex associated with them - Hence each set of adjacent triangles must be > > specifiable as a strip). I like to call these sort of meshes, highly > > connected meshes (HCM), for the simple purpose that with appearance to the > > renderer, they share vertices, and are therefore connected. > >I cite different vertices because the actual UV coords are different >(eg. a vertex is NOT just gemoetry, as in the D3D definition) > >Doesn't anyone use large meshes that are textured using multiple textures >with VIPM, >in that you would want the mesh as a whole to reduce, not the similarly >textured "pieces" ? > >What I'm tending to now assume is that most users of VIPM are using it on >trivially textured >objects ... would this be a fair assumption, or once again have I missed >something ? |
From: Jeff L. <je...@di...> - 2000-08-09 17:03:00
|
Hi all. New to this discussion but I have recently had a couple of projects where this issue has been very important. The issue you bring up about texture coordinates and any sort of mesh LOD system is critical. That is why I insist that the LOD tools allow artists to hand designate edges that will not collapse. Any algorithmic method you try and find will fail in certain cases. The algorithms handle texture projections like sphere and cylinder wraps pretty well but arbitrary UV texturing is a real problem. One particular problem I will share that comes up often is when texturing characters. My system automatically will preserve vertices that have texture coordinate discontinuities. However, artists will often model a character with only half of the texture (particularly in the face) then just reflect the texture coords to save texture space. Now the problem as you would guess is you have the face with coordinates like (1,0) ----- (0,0) ---- (1,0). Obviously more granular then that. There are no texture coordinate discontinuities so the algorithm says it is ok. The surface of the face is roughly flat so the internal vertex and edges are good candidates for collapse. However, you then get the nice situation of (1,0) ------ (1,0). Doesn't look so hot. I have the artists tag reflected seam vertices as uncollapsable until very late in the order. Let me paraphrase you by saying the algorithms are most efficient when working on trivially textured objects. Anything else requires good artist tools and some TLC. -Jeff At 06:44 PM 8/9/2000 +1000, you wrote: > > Well, I think the thing you missed is that VIPM is mainly aimed >towards > > meshes that are more like skinned meshes (ie, all points only have a >single > > vertex associated with them - Hence each set of adjacent triangles must be > > specifiable as a strip). I like to call these sort of meshes, highly > > connected meshes (HCM), for the simple purpose that with appearance to the > > renderer, they share vertices, and are therefore connected. > >I cite different vertices because the actual UV coords are different >(eg. a vertex is NOT just gemoetry, as in the D3D definition) > >Doesn't anyone use large meshes that are textured using multiple textures >with VIPM, >in that you would want the mesh as a whole to reduce, not the similarly >textured "pieces" ? > >What I'm tending to now assume is that most users of VIPM are using it on >trivially textured >objects ... would this be a fair assumption, or once again have I missed >something ? |
From: Conor S. <cs...@tp...> - 2000-08-09 15:07:41
|
> > Well, I think the thing you missed is that VIPM is mainly aimed > towards > > meshes that are more like skinned meshes (ie, all points only have a > single > > vertex associated with them - Hence each set of adjacent triangles must be > > specifiable as a strip). I like to call these sort of meshes, highly > > connected meshes (HCM), for the simple purpose that with appearance to the > > renderer, they share vertices, and are therefore connected. > > I cite different vertices because the actual UV coords are different > (eg. a vertex is NOT just gemoetry, as in the D3D definition) I agree actually :) A point is the geometry, and a vertex is the other associated bits. I was just saying that these meshes are not good candidates for VIPM. > > Doesn't anyone use large meshes that are textured using multiple textures > with VIPM, > in that you would want the mesh as a whole to reduce, not the similarly > textured "pieces" ? You could probably do that - But it would be more work. I think it would involve making the edge collapse storage more generic. An edge collapse would have to move more than one vertice, and know in each collapsed instance which vertice needs to replace it. This should work - But, it would take more in implementation, and bloat the size a little. It may just be easiest to force edges between non similarly textured primitives to remain uncollapsed. > > What I'm tending to now assume is that most users of VIPM are using it on > trivially textured > objects ... would this be a fair assumption, or once again have I missed > something ? Thats a fair assumption. Dead on the money in most cases - And even in the cases they are not, they tend to force edges adjacent to two objects to stay uncollapsed. (ie, the joint between a model with a seperate texture for legs/torso). > Cool, saw this, read it, but it didn't address my question :) Well, it was more just a coincidence. :) > > Thanks for the feedback, Anytime :) Conor Stokes |
From: Lionel F. <li...@mi...> - 2000-08-09 13:48:24
|
Hello, Could anybody point me on a url, code source, algo for removing the noise of an image, with FFT ? Thank you in advance ! Lionel. |
From: Pierre T. <p.t...@wa...> - 2000-08-09 09:55:38
|
> Doesn't anyone use large meshes that are textured using multiple textures > with VIPM, > in that you would want the mesh as a whole to reduce, not the similarly > textured "pieces" ? > > What I'm tending to now assume is that most users of VIPM are using it on > trivially textured > objects ... would this be a fair assumption, or once again have I missed > something ? There are two obvious ways: 1) don't collapse edges along texture seams. (or even along "smoothing groups seams"). This is the easiest solution, and it only implies a minimal number of vertices for the minimal LOD - after which you can't collapse anything anymore. 2) when you collapse a texture-seam edge, collapse the other edge as well. By "other edge" I mean, of course, the counterpart edge in the opposite triangle using another texture. I don't know what is the "official" method, I don't play in the gamedev field anymore. But I did both of them, and 1) is often well enough. 2) can be very tedious to implement, it all depends on your data structures, architecture, and how you deal with meshes made of multiple textures & smoothing groups in the first place. Pierre |
From: Tom F. <to...@mu...> - 2000-08-09 09:25:09
|
> From: Mark Wayland [mailto:mwa...@to...] [snip] > I cite different vertices because the actual UV coords are different > (eg. a vertex is NOT just gemoetry, as in the D3D definition) > > Doesn't anyone use large meshes that are textured using > multiple textures > with VIPM, > in that you would want the mesh as a whole to reduce, not the > similarly > textured "pieces" ? Ugh - no. Who would want to do that? :-) Actually, yes. Edges where two textures meet (or indeed any discontinuous data - colours, normals, etc) are what I call "feature" edges. The way I deal with them is that you find all your feature eges, and then only allow collapses _along_ edges and _onto_ edges. But I never allow collapses of a vertex on a feature edge onto a another vertex that isn't on the same edge (remember to disallow collapses of one feature vertex to another feature vertex that _isn't_ on the same edge, e.g. between two parallel feature edges). But the fewer feature edges you have on your model, the better VIPM can cope with it, and the better it collapses. > What I'm tending to now assume is that most users of VIPM are > using it on > trivially textured > objects ... would this be a fair assumption, or once again > have I missed > something ? I dunno about "trivially" - mapping textures onto humanoid models (and indeed the not-so-humanoid - we have slugs, two-headed creatures and ones with four arms in Startopia) can get quite tricky. But yes, VIPM only works well when there are comparatively few feature edges. There are some schemes that try to perform collapses across feature edges. One is Jan Svarovsky's (follow the GDC link from the ultra-minimalist homepage: http://www.svarovsky.com/), which has a discussion of these collapses. But they're not pretty, and they complicate the collapse process. By far the best way to proceed is to use friendly persuasion and Pavlovian conditioning (a big stick is handy for this) until the artists to create models with few feature edges. Tom Forsyth - Muckyfoot bloke. Whizzing and pasting and pooting through the day. |