irclog2html for #brlcad on 20061114

00:32.13 *** join/#brlcad Twingy (n=justin@74.92.144.217)
06:32.23 *** join/#brlcad clock_ (i=clock@84-72-62-142.dclient.hispeed.ch)
08:08.43 brlcad Maloeran: ping
08:21.49 *** join/#brlcad test34 (n=test34@unaffiliated/test34)
08:40.55 *** join/#brlcad clock_ (n=clock@zux221-122-143.adsl.green.ch)
08:49.32 brlcad Maloeran: if you happen to have a nice screenshot handy, I could use it -- something benign but interesting
08:50.13 brlcad plus I'm looking at formulating rough performance bounds in terms of rays/s for comparison purposes
08:50.26 clock_ brlcad: what is the meaning of the second number on matrix line?
08:50.34 clock_ Is it input X output Y or input Y output X?
08:51.06 brlcad Maloeran: librt sits at roughly 100k to 1M, adrt at 500k to 5M, rayforce at ?
08:51.45 brlcad Maloeran: also would it be okay to provide a link to your site (rayforce.net)?
08:52.00 brlcad clock_: what matrix line?
08:52.50 clock_ brlcad: if you edit matrix in a text editor, it is on a line as a sequence of 16 numbers
08:53.06 brlcad 4x4 matrix, homogeneous coordinates
08:53.23 clock_ what is the meaning of the second number on matrix line?
08:53.59 brlcad still not sure if you mean the second of 16 or some other line?
08:54.05 clock_ second of 16
08:54.11 brlcad it's 16 values that form the 4x4 matrix
08:54.35 clock_ the second value is not 16 values. The second value is just one value.
08:54.57 brlcad that's not what I was saying
08:55.09 clock_ what is the meaning of the second number on matrix line?
08:55.30 brlcad i'm saying it's a 4x4 transformation matrix :) .. so the second value is simply the second element of that matrix
08:56.07 clock_ it's good to know that the second element is a second element
08:56.32 brlcad to say that is "is" anything other than that would be rather misleading
08:56.36 clock_ but what is the meaning?
08:56.46 clock_ the meaning of the first element is input X output X
08:57.04 brlcad if applied to a vector in a multiplication, it has one effect, if applied via some different operation, it has a different result
08:57.04 clock_ but the meaning of the second element may be input X output Y, *OR* input Y output X
08:57.13 clock_ Depending if you scan the matrix by rows or by columns
08:57.17 clock_ So what is the meaning?
08:59.10 brlcad i'm still not understanding where you're getting input and output from
08:59.18 brlcad input to what? output to what?
08:59.32 clock_ It is a transform matrix, right?
08:59.38 brlcad yep
08:59.42 clock_ That means it's a matrix that defines some transform.
08:59.51 brlcad naturally
08:59.58 clock_ Transform is something where you throw something in, and something else falls out
09:00.17 brlcad that's one way to look at it I suppose
09:00.18 clock_ We can imagine it like a box which has a funnel at the top and holet at the bottom
09:00.28 clock_ We take a point in 3D space and throw it into the funnel
09:00.35 brlcad i tend to think of a transform as something you apply, and you get a result
09:00.37 clock_ Some other point in 3D space falls out from the bottom
09:00.50 clock_ Now how the transform works inside
09:01.10 clock_ When the point falls into the funnel it's taken apart into X, Y and Z coordinates
09:01.18 clock_ like 3 drinks
09:01.34 clock_ and there is a bartender inside which mixes the input 3 drinks into 3 output drinks
09:01.47 brlcad i think you're perhaps just used to characterizing it how you've come to understand/visualize it as opposed to the actual operations that go on
09:01.53 clock_ The matrix tells him how much of each input drink should go into each output drink
09:02.06 brlcad there are tons of ways to conceptualize it
09:02.20 clock_ He has kinda table, where he has "input drinks" and "output drinks"
09:02.30 clock_ This table is called the transform matrix
09:02.36 clock_ You took the table and flattened it out
09:02.56 clock_ However there are two ways how to flatten. You can read it like a book, or read it like Chinese do - by columns
09:03.00 brlcad i don't think you're listening
09:04.02 clock_ You are unable to answer the question whether the second number of 16 has meaning "coefficient for propagation of input X into output Y" or "coefficient of propagation of input Y into output X".
09:04.20 clock_ That's a basic knowledge of how affine transformations work, sorry
09:05.43 brlcad heh, whatever .. i'm pretty sure it's just a difference of semantics and language familiarity
09:05.55 clock_ But I want to know it, because without this knowledge I cannot produce the right sequence of 16 numbers for a given transform
09:06.14 clock_ If you cannot tell me that, I will have to perform an experiment in brl-cad
09:06.27 clock_ Or, alternatively
09:06.31 brlcad i think you're just asking is element two on the second column or the second row, and the answer would be it's the second row
09:06.40 clock_ we have a transform that transforms (x,y,z) into (x+y, y, z)
09:06.49 clock_ What sequence of 16 numbers corresponds to this transform?
09:07.20 clock_ Knowing the row or column is not enough
09:07.38 clock_ There are 2 ways how matrix multiplication can be defined, which differ by swapping rows and columns
09:07.52 brlcad along with the fact that it's a right-handed coordinate system
09:07.56 clock_ What sequence of 16 numbers corresponds to the transform (x,y,z) -> (x+y, y, z)?
09:11.18 clock_ brlcad: can you please figure it out?
09:20.05 brlcad actually, i'm just in the middle of preparing a presentation, while trying to placate your oddly worded question... how to apply a matrix seems rather obvious .. even with your case, it's not clear how to relate the matrix elements to your question exactly -- the diagonal is along elements 0, 5, 10 (and 15 for homogenity) -- if I understand you correctly, the matrix would be something like 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1
09:22.07 clock_ I think it's completely clear
09:23.13 clock_ so if you put this matrix into a combination, the element of the combination will be transformed so that point (1,1,1) in the original element will map onto (2,1,1)?
09:24.17 clock_ This is so typical for mathematicians - they can calculate 1+1 by integral, but if you ask them "which of your hands is right and which left", they reply "I don't think I understand your question completely"
09:29.31 clock_ brlcad: if a point is transformed by matrix in brl-cad, is it put into a matrix 3 high and 1 wide, or 3 wide and 1 high?
09:36.52 clock_ Does it make sense if the last 4 numbers are anything else than 0 0 0 1?
09:39.08 brlcad technically, all vectors (and matrices) are stored via regular C arrays, so 3 "wide" would probably be how you'd interpret that if that's how you conceptualize int a[10]; as being 10 wide
09:39.42 brlcad yes, it "can" make sense, but rarely is anything but homogeneous
09:44.17 brlcad the biggest difference with your question earlier is that really there is more than one way to think about it -- you have found one way that you are comfortable with that works for you but that is by far not the only way to think about it and/or word it
09:45.00 brlcad all just a matter of perspective
09:45.01 clock_ Well let's formulate the question more precisely
09:45.01 clock_ If I edit a combination, the combination can consist of several elements.
09:45.15 clock_ Each element has a line. That line holds a sequence of 16 numbers which define a transformation
09:45.36 clock_ Element is taken, transformed by that and then processed by logical operators in the combination.
09:46.20 clock_ So does the 2nd number mean how X of the original element is mapped into Y of the processed one, or vice versa?
09:46.43 clock_ You cannot say "it's a matter of perspective now", because then the behaviour of BRL-CAD would depend on perspective of it's user, which it doesn't
09:46.44 brlcad a 4x4 homogeneous tranformation to a right-hand ruled coordinate system where +z is in the up direction
09:47.00 brlcad that alone should be enough information
09:47.17 clock_ No it isn't.
09:47.31 clock_ I can construct 2 interpretations of this that produce different results with the same sequence of 16 numbers
09:48.02 brlcad what is this second interpretation that is not left-hand ruled?
09:48.31 clock_ First interpretation is that the points are put into vectors that are standing
09:48.36 clock_ second that they are lying
09:48.37 brlcad knowing that the values are perhaps not interlaced, are in incremental order by rows
09:48.42 clock_ Then the matrix has different effect on the points
09:49.07 clock_ Still, the effect is dependent on if the points are fed into standing vectors or lying vectors
09:49.22 brlcad you're referring to the actual storage I think, which could be either way
09:49.40 brlcad i.e. if I have int a[4][4];
09:49.54 brlcad or similarly int a[16];
09:49.57 clock_ you can tranform vector v as
09:50.01 clock_ vA or Av
09:50.15 clock_ in the first case v is a lying vector, in the other a standing one
09:50.40 clock_ Depending on which case you use, the same matrix A has different effect on the v
09:50.41 brlcad which therein I think perhaps shows the discrepancy
09:50.56 clock_ The same matrix represents a different transformation
09:51.03 brlcad on paper it makes a difference, in code it only really works one way
09:51.16 clock_ And I am just asking which way ;-)
09:51.22 brlcad and int a[3] doesn't have to be thought of as being wide or tall
09:51.32 brlcad it's just three values in order
09:52.01 brlcad vA can work as can Av .. it's up to use that determines which you get
09:52.06 clock_ Let's define cube.s which is rpp 0 1 0 1 0 1
09:52.17 clock_ then c combo.c cube.s
09:52.27 brlcad i'm sorry, I shouldn't have gotten started
09:52.35 brlcad it's way too late to keep going on this track here
09:52.44 clock_ OK good luck with presentation
09:52.57 brlcad wednesday
09:53.03 brlcad but dry run tomorrow
10:19.30 *** join/#brlcad test34 (n=test34@unaffiliated/test34)
14:48.02 *** join/#brlcad test34 (n=test34@unaffiliated/test34)
14:59.24 *** join/#brlcad clock_ (n=clock@zux221-122-143.adsl.green.ch)
15:27.38 *** join/#brlcad clock_ (n=clock@zux221-122-143.adsl.green.ch)
16:01.06 ``Erik *yawn*
16:05.18 ``Erik brlcad: rayforce gets about 1.7-1.8 mil ray/sec on a 2.0ghz g5 (no altivec, single thread) on 267534 triangles, and 4.5-8 mil ray/sec on an opteron with sse (still single threaded)
16:07.45 ``Erik and in the neighborhood of 25k-29k lines of code, depending on which program you ask
16:20.46 Maloeran brlcad, screenshot like http://www.rayforce.net/smooth000.png perhaps?
16:21.37 Maloeran How much ram does an o200 have?
16:22.24 Maloeran You sure can provide a link to rayforce.net if you want, it's currently redirected to some draft of website put together by Survice
16:22.25 ``Erik the one I'm thinking have has I think 1.2g
16:22.52 ``Erik 1.125g, actually
16:22.57 ``Erik and TWO 180mhz r10k processors
16:22.58 ``Erik :D
16:23.05 Maloeran Woohoo
16:47.10 pra5ad what fps rate do u get for that m1a1
16:48.18 ``Erik it's gone
16:48.25 Maloeran Depends of the resolution, light sources, sampling, normal smoothing...
16:48.29 ``Erik and it was an a2
16:48.59 pra5ad for that screenshot
16:49.00 ``Erik rfdemo just does primary ray and flat shading, no shadow rays or anything, right mal?
16:49.25 Maloeran Right, I didn't import this code yet
16:50.15 Maloeran I think it was 6-8fps on my amd64 desktop, single processor
16:50.26 ``Erik so on a 2.0ghz single core opteron, with one light source and shadoing, probably ~7fps at 800x600
16:50.40 pra5ad ah
16:51.04 Maloeran Erik, the a2 is _much_ lighter than the truck
16:51.23 Maloeran The truck is saturated of long thin packed triangles that are difficultt o handle
16:51.59 ``Erik long thin triangles are a fact of life. :(
16:52.04 Maloeran You really have to put ADRT on that model too if you want to compare
16:52.12 ``Erik yeah, and rt
16:52.25 Maloeran It happens with converted CSG models, but modellers don't generally produce that kind of geometry
16:52.44 ``Erik probably happens with converted tnurbs, too
16:53.07 ``Erik outside of the game world, geometry generally comes in tnurb or csg as far as I can tell
16:53.33 Maloeran The CSG converter also leaves "gaps", apparently tesselating two distinct but connected curved surfaces differently and it creates small gaps
16:53.42 ``Erik oh crap, I left my slippers at home :/
16:54.02 ``Erik gaps and overlaps, yes
16:54.20 ``Erik especially how we do the tnurb to triangle conversion
16:54.24 ``Erik :/
16:54.41 Maloeran I mean serious gaps, covering the whole viewport if I zoom enough, not just some numerical problems that the raytracer would correctly handle
16:55.00 ``Erik yes... serious gaps... many mm...
16:56.21 ``Erik if you took a manhole, tesselated the ground with, oh, 20 edges (say 40 triangles for the outter rim), and tesselated the cover with 40 triangles but started from a different orientation, there would be serious gapping and overlapping... annnddddd that's what we get on curved surfaces with the current solution :)
16:56.52 Maloeran I see, understood
16:57.44 Maloeran Curved facets wouldn't quite solve the manhole situation though. Tricky thing
16:59.45 Maloeran My current curved facets make all points of an edge being aligned on a plane, plane which can be oriented in any direction
17:00.35 Maloeran Non-planar edges could actually work
17:03.21 ``Erik meh, just add dimensions until everything is planar ;)
17:04.01 Maloeran Seriously, we could have curved facets with non-planar edges, the math wouldn't be that slow
17:05.21 Maloeran 4 curved facets can make a sphere. One curved facet with non-planar edge could make a perfect... circle
17:05.57 ``Erik mmm a perfect circle... *looks through his playlist*
17:10.19 Maloeran Hrm sorry, not a perfect circle, of course. That would require some expensive extra steps that should probably be avoided for the sake of performance
17:25.00 ``Erik but the band is still cool
18:06.29 CIA-21 BRL-CAD: 03erikgreenwald * 10brlcad/include/machine.h: fix for fbsd7/sparc64 (hopefully)
19:33.16 *** join/#brlcad test34 (n=test34@unaffiliated/test34)
21:01.36 *** join/#brlcad clock_ (i=clock@84-72-94-30.dclient.hispeed.ch)
22:31.37 *** join/#brlcad Twingy (n=justin@74.92.144.217)
23:42.01 brlcad Maloeran: that'll work quite nicely, thanks
23:43.08 brlcad and given erik's numbers, it sounds like i'm in the right ballpark of 1-10M depending on the model and other factors
23:45.40 brlcad which is to highly estimate a lower bound if more lights and shading effects were to be enabled, full pass thorugh rays, etc
23:48.29 brlcad still coming out way ahead, and keeps expectations sensible given the audience
23:49.55 brlcad Maloeran: I have to ask given the image, but is it safe to assume that image is okay for release .. it's not a model that was provided to you by someone at arl or survice, I hope? otherwise, I'll have additional paperwork to do
23:54.27 brlcad Twingy: ping

Generated by irclog2html.pl by Jeff Waugh - find it at freshmeat.net! Modified by Tim Riker to work with blootbot logs, split per channel, etc.