Saturday, 2007-04-21

*** blend_dem has quit IRC00:11
renderguyJoron: JUst tried your latest mods, thanks, but now I get 'Not a TIFF or MDI file, bad magic number' when trying to convery 'human.bake.bake'.00:13
renderguyJoron: convery == convert.00:14
*** blend_dem has joined #aqsis00:15
*** blend_dem has quit IRC00:23
renderguyBed's calling, night all.00:23
*** renderguy has quit IRC00:23
pgregoryme too, night00:45
*** pgregory has left #aqsis00:45
*** cgTobi has quit IRC03:27
*** [2]ShortWave is now known as ShortWave03:29
WayneZacMPbbs03:55
*** WayneZacMP has quit IRC03:55
*** cgTobi has joined #Aqsis04:02
*** ChanServ sets mode: +o cgTobi04:02
*** cgTobi has quit IRC04:02
*** cgTobi has joined #Aqsis04:04
*** ChanServ sets mode: +o cgTobi04:04
*** scorp007 has joined #aqsis04:11
*** c42f has joined #aqsis04:44
cgTobihi chris04:47
*** cgTobi sets mode: +v c42f04:47
c42fHi Tobi, how's things?04:48
*** scorp007 has joined #aqsis04:51
cgTobinot bad you?04:54
cgTobijust about to go to sleep04:54
c42fNot bad apart from a bit of a cold.04:56
scorp007hi all04:56
c42fcgTobi: How's the job in London going?04:56
c42fHi scorp00704:56
cgTobiits going ok04:57
scorp007hi c42f, how's the texture generation going?04:57
cgTobiI can't complain04:57
c42fcgTobi: Hm, let me guess: "It's not too exciting, but a good starting point for 3D"04:58
cgTobiyeah, thats right04:58
scorp007cgTobi, MPC, or something different?04:58
cgTobitherefore I need to get myself up and do some codeing04:59
cgTobiscorp007: MPC04:59
scorp007ok04:59
cgTobic42f: fiddeling with the display driver stuff04:59
*** cgTobi sets mode: +v scorp00704:59
scorp007I'd try to get a full time job there, when you graduate :)04:59
c42fscorp007: mipmap generation is looking better... did you try the sinc filter recently?  I think there's still bugs, but it's improving.05:00
scorp007c42f, nope, I just did an svn up, and tried building, but I have some compile errors.05:00
c42fcgTobi: you're fiddling with the displays are you?  something to do with what Paul has been up to?05:00
cgTobino, not at all05:00
c42fUgh.  what compile errors?05:00
cgTobijust try to find out how they work and write a simple one myself05:01
c42fcgTobi: cool :)05:01
scorp007http://rafb.net/p/AynVVB98.html05:01
cgTobic42f: I think I understand how it works in theroy, but getting it going seams another thing. at least at the moment, I am not pushing it too hard since I try to help my girlfriend with some actionscript stuff05:02
cgTobiscorp007: I, definitely will apply there... couldn't hurt to stick with them for a few years, neither me nor my CV ;)05:03
scorp007hehe, sure05:04
scorp007cgTobi, do you have any specific questions re the display driver? I wrote one for my max plugin, I might know a solution...05:05
cgTobiscorp007: hm, nothing specific at the moment, but good to know who to ask if I do :) thanks for the offer thoug. I surely will come back to you05:06
scorp007np05:06
cgTobiis your display driver open source?05:06
scorp007well, I don't have any license for it, as 1) It's unreleased, 2) It's specific to my max->renderman bridge05:06
scorp007I.e. it's not a generic thing you can use05:07
c42fscorp007: which compiler were you using?05:07
scorp007c42f, for aqsis? VC805:07
scorp007c42f, perhaps I should do a clean?05:07
cgTobiscorp007: ok05:07
c42foh, sure.  I don't understand the first error :(  The code looks fine to me.05:08
cgTobiscorp007: maybe I get back to you tomorrow.05:08
cgTobineed some sleep now05:08
scorp007maybe I have some old .obj's lying around with out of date code.05:08
c42fI'd be a bit surprised if a clean build fixed the problem though05:08
scorp007ok, gnight cgTobi05:08
c42f'night Tobi05:08
cgTobicya guys05:08
c42fscorp007: according to vc8, it looks like I've done something wrong with std::max, but I just can't see what.05:10
c42fback in a bit05:14
scorp007c42f, why did you define the CqImageDownsampler class inside CqTextureMap?05:32
c42fback05:32
c42fscorp007: Well, I didn't think too much about that.  Outside would in fact be fine - inside just happened to be the way that Paul's previous version worked.05:35
c42fIt doesn't access any of the CqTextureMap members, so it may be better outside.  Thoughts?05:35
c42fNote that you can view the filter kernel coefficients using debug output (-verbose=3)05:37
scorp007Well, I personally prefer a flatter heirachy when possible, unless there is a need for it to be nested.05:38
scorp007I'm still trying to think about what the error is caused by05:39
scorp007why does scons make a copy of the source files into build_debug/ and build/, is that normal?05:40
c42fHm, I may move it outside.  I don't think there's a compelling reason for it to be inside anymore.05:40
scorp007it's just that nesting adds unnecessary complexity05:40
scorp007but I'd worry about fixing the compiler error first. You obviously don't seem to be having this problem?05:41
c42fYes, build/ is normal.  It's so that the source dirs don't get cluttered I gather.  The "copies" are only hard links anyway so they don't take extra space (at least on linux)05:41
scorp007yep, on linux :P05:41
c42fYes, obviously I don't have the build problem ;)  Our build server build.aqsis.org doesn't either.  Seems to be a VC8 thing.05:44
c42f(could still be my fault of course)05:44
scorp007likely05:44
scorp007I'm just fiddling with it05:44
scorp007(likely that it is a VC thing, not your fault, that is :P)05:45
c42f:-)  Don't worry, I've seen plenty of times when a new compiler brings up new bugs.  Strange that the first bit of code I've written after getting VC8 working has broken it again :(05:47
scorp007so many warnings, lol05:50
scorp007I wonder if it's all that auto generated code05:50
c42fCan you just paste one of the offending lines into a tiny test program?  Then see if VC8 complains.05:53
scorp007It's something to do with std::max and std::min, I think. VC8 did something stupid with macros at some stage using the same names05:54
scorp007s/VC8/VC/05:56
c42fPerhaps we should write our own Aqsis::max, targeted toward numeric types (ie, pass by value).05:58
c42f(rather than by reference)05:58
scorp007no, I have definitely used std::max and std::min in vc8 before05:58
scorp007it's not broken05:58
scorp007I don't think there is a benefit in writing our own05:59
c42fIf you saw the discussion on the mailing list, you'll see that pass-by-reference isn't completely optimised away for numeric types anyway.05:59
* c42f isn't sure if yet another version of the max function is a good idea though.05:59
scorp007in what sense do you mean it isn't optimized?06:00
*** AlexK has joined #aqsis06:02
scorp007hmmmm06:04
c42fusing variables which are held by reference is slower than variables which are held by value.  Significantly slower in an inner loop.06:06
scorp007oh ok06:07
c42fHence if we should prefer max(T a, T b) to max(T& a, T& b).06:07
c42f(for small types like int, double etc)06:07
c42fThis is one of those nasty compiler dependent things, where you wish you could use the latter (better in general) version, but the compiler technology isn't quite uniform enough to allow us to make a clear cut choice.06:09
scorp007I'd probably leave such micro and compiler dependent optimizations till a later stage, and only include them if benchmarks truely show measurable improvements.06:10
scorp007ok. I have an idea as to what the problem is.06:12
scorp007The preprocessor is doing something funky with the token 'max'06:12
scorp007in fact, it seems to be setting it to an empty string06:13
scorp007resulting in the code std::(...)06:13
c42fArgh, yuck :((06:14
c42fStrange at the top of texturemap.h, we have #undef max.06:16
scorp007well, I know one fix.06:16
c42fShouldn't that stop the preprocessor from doing this.06:16
scorp007c42f, the preprocessor probably mutates the token later.06:17
c42fapparently.06:18
scorp007ok - the cleanest fix I think is to just move those #undef's to after the #include's06:19
c42fSounds good to me.06:19
scorp007ok, so it's built. What did you want me to test/06:20
scorp007?06:20
c42fHow about some of those test images from the forums which you posted?06:20
scorp007ah, I see someone added the revision number to aqsis --version06:20
scorp007good idea06:21
c42fCan you commit the #undef fix too please?06:22
scorp007ok, in a sec06:22
c42fNote that the code hasn't been optimised at all, so it'll be much slower than it could be.06:22
scorp007for now, I'm just hoping for correctness06:23
scorp007but if it's a wip, I understand06:23
c42fThat was my aim too :)06:23
scorp007commited06:25
c42fcool.  I'll move CqImageDownsampler to outside of CqTextureMap.06:26
scorp007ok06:26
scorp007is there any reason why you chose to only have 10 pages of mipmaps, ommitting the 1x1 map?06:27
scorp0073delight has 11 for the image06:27
c42fThere's a reason, but personally I don't think it's good ;-)  My mipmapping code generates all 11 pages, but other code which I've yet to dig through properly doesn't save all of them.06:29
c42fShould be simple to fix.06:30
scorp007oh ok, cool06:30
scorp007guess what? Looks identical to 3delight's output :)06:30
scorp007congrats06:30
scorp007at least from what I can tell on my new (crappy) lcd monitor06:30
scorp007lcd's don't show colors as well as my good old crt06:31
scorp007well, if you zoom in, there are minor differences, but to the naked eye, it's bloody close06:32
scorp007this is with sinc, 8x806:32
scorp007which is what 3dl defaults to06:32
scorp007actually no, it looks identical, 100%06:33
scorp007you are a genious06:34
scorp007genius*06:34
c42fhehe, not.  Very nice to hear that it's working though.06:34
c42fCan you test the difference when it's a non-power of two texture?  That would be helpful.06:35
scorp007should it be square, or will any irregular size do?06:36
c42fI've been very careful about trying to get it to deal with any size correctly.06:37
c42fso *hopefully* any size will be fine ;)06:37
scorp007ok, will try a 1280x960 image06:37
c42fActually, could you try the second dim. to be odd?06:38
c42fthat would be a better test.06:38
scorp007ok06:38
scorp007what if they are both odd?06:38
c42fjust as good.06:38
scorp007ok06:38
c42fgenerally, just try to do strange screwy things to it, and see if you can make it do something unusual.06:39
scorp007yep, as a good tester should do :)06:39
scorp007on an image 1235 * 957 pixels, the last mipmap size is 5*4, and there are only 9 pages, whereas 3dl's is 2*1, with 11 pages.06:44
scorp007and there are some very minor differences, but there are really hardly noticable, even to the trained eye.06:45
scorp007and it's probably a matter of how many mipmaps you go back by as a source to every mipmap06:45
scorp007which can be configured by the user06:45
scorp007so in terms of the quality of the mipmaps generated now, I can't really complain06:46
c42fcool.  So you don't notice any sideways shifting compared to 3delight?  That would be a symptom of even/odd filter/image size mismatch...06:48
scorp007nope, looks practically the same to me06:49
c42fThe lack of small mipmaps will be fixed later.  I think it's due to calculating the number of levels incorrectly at ri.cpp:5069.06:49
scorp007oh ok, no worries then, just so you're aware of it06:50
c42fThere should be some small residual differences, due to the way that the filter is windowed (3delight uses lanczos by default, we use a truncated cosine).  Nothing to worry about though.06:51
scorp007right, looks good enough to me06:51
scorp0073dl actually lets the user specify a windowing function on the command line06:52
c42fYes, I know.06:52
scorp007ok06:52
c42fI don't know how we'd incorporate that easily though.06:52
c42f(perhaps just a different RiFilterFunc with the window applied...)06:53
scorp007perhaps some enum parameter?06:53
c42fNo.  The mipmapping code is completely agnostic about which filter it's using.  All it knows is that it has a function pointer of type RiFilterFunc.06:55
scorp007oh ok06:55
scorp007its not much of an issue yet though06:55
c42fI don't see a clean way of putting in configurable windowing, except as a seperate RiFilterFunc.06:55
scorp007the end user isn't likely to notice such things06:56
c42fAs you say, a relative non-issue for now.06:56
c42fWhen I was testing the downsampling, I noticed that the differences between windows are mostly really subtle.06:56
c42fI don't think most users will care about them at all.06:56
c42f(barring the box window that is, which is a "bad thing")06:57
c42fThe next thing to do is to add some optimisation for square-seperable filters.  This would be good, as it makes the algoritm O(W) rather than O(W^2) in the filter width W.06:58
scorp007oh, yes, that would be great for speed07:00
c42f15:26 <+c42f> cool.  I'll move CqImageDownsampler to outside of CqTextureMap.  <<< Done, commited.07:00
scorp007that sounds like what 3dl is doing presently07:00
scorp007c42f, sweet, will build just to make sure07:00
scorp007(nothing is broken that is)07:00
c42fsure, thanks.  (thanks for the suggestion too)07:00
scorp007np07:00
c42f3dl is definitly making use of square-seperability.  Otherwise they couldn't possibly claim that their algorithm is O(W), and they do claim that in the docs.07:01
c42fIt doesn't work for all filters though.07:01
scorp007yep07:01
scorp007which ones are square separable?07:01
c42fbox amd sinc at least.07:02
scorp007ok, goodie07:02
scorp007yep, all looks good, as before07:05
c42fquick glance through filters.cpp:  seperable: sinc, mitchell, box, gaussian.   non-seperable: catmull-rom, disk, bessel, triangle07:06
c42fWell, I've gotta go.  Thanks for the testing.  If you find bugs, a post to the mailing list would be most welcome.07:07
scorp007ok, thanks for fixing, cya later07:07
*** c42f has quit IRC07:08
*** scorp007 has quit IRC07:12
*** Pseudonym has joined #Aqsis07:33
*** Pseudonym has quit IRC08:23
*** Anteru has joined #aqsis08:43
*** Anteru has quit IRC09:00
*** Pseudonym has joined #Aqsis09:04
*** Pseudonym has quit IRC09:28
*** render has joined #aqsis09:34
*** AlexK is now known as AlexKK_biking09:53
*** Anteru has joined #aqsis10:18
*** Anteru has quit IRC10:28
*** Anteru has joined #aqsis11:03
cgTobihi all11:21
*** cgTobi sets mode: +vvv AlexKK_biking Anteru render11:21
*** [1]ShortWave has joined #aqsis12:35
*** ShortWave has quit IRC12:51
*** Anteru has quit IRC13:41
*** AlexKK_biking has quit IRC14:19
*** ShortWave has joined #aqsis15:20
*** [2]ShortWave has joined #aqsis15:25
*** [1]ShortWave has quit IRC15:37
*** ShortWave has quit IRC15:41
*** cgTobi has quit IRC16:27
*** [2]ShortWave is now known as ShortWave17:29
*** cgTobi has joined #Aqsis17:58
*** ChanServ sets mode: +o cgTobi17:58
*** cgTobi sets mode: +v ShortWave18:25
cgTobievening all18:25
*** cgTobi has quit IRC19:11
*** andrewatav has joined #Aqsis19:18
*** cgTobi has joined #Aqsis21:11
*** ChanServ sets mode: +o cgTobi21:11
*** mh_le has quit IRC22:31
*** mh_le has joined #aqsis22:31
*** irc.freenode.net sets mode: +v mh_le22:31
*** [1]ShortWave has joined #aqsis23:30
*** ShortWave has quit IRC23:46

Generated by irclog2html.py 2.5 by Marius Gedminas - find it at mg.pov.lt!