00:10.19 |
CIA-7 |
BRL-CAD: 03brlcad *
10brlcad/src/other/libtermlib/termcap.c: prevent crashes if termcap
is asked to perform a tgetnum() after a tgetent() fails |
00:13.01 |
IriX64 |
it bounces, cause i'm a rubber
necker |
00:26.57 |
IriX64 |
that ultrasparc do solaris64? |
00:28.54 |
``Erik |
.... don't they all? |
00:29.22 |
IriX64 |
interesting, a sparc32 running solaris64,
quick call Sun Microsystems :) |
00:29.36 |
``Erik |
ultra is the v9, they're all 64b |
00:30.38 |
``Erik |
they can run 32b code... but the core can do
64b... :) |
00:31.14 |
IriX64 |
you and Maloeran and you're cores, dunno how
to talk to you :) |
00:31.58 |
``Erik |
we used to say 'chip' before the multi-core
chips started showing up... |
00:32.08 |
``Erik |
and in some arenas, alu is more
accurate |
00:32.09 |
``Erik |
*shrug* |
00:32.23 |
``Erik |
heh, nybbles |
00:32.25 |
IriX64 |
industrial its all alu or used to
be. |
00:32.42 |
IriX64 |
vic forever. |
00:32.45 |
``Erik |
alu is just part of a core, though |
00:32.58 |
Twingy |
commadores were a 70's band no? |
00:33.09 |
``Erik |
cache and mmu's and stuff get slapped in,
too |
00:33.21 |
IriX64 |
it could be argued that the core comprimises
the entire system |
00:33.28 |
IriX64 |
beat me to it :) |
00:33.53 |
``Erik |
yeah, twinky, but their mommies dressed them
funny ;) |
00:37.02 |
IriX64 |
ka-click -- 128bit xfer. |
00:38.00 |
IriX64 |
how would you do parallel pipling ``Erik, or
maybe we should first define pipeling. |
00:38.13 |
IriX64 |
piplining too. |
00:38.23 |
IriX64 |
bother |
00:38.38 |
Twingy |
I need like 50 pounds of play-doh |
00:38.51 |
IriX64 |
to plug something obviously. |
00:39.05 |
IriX64 |
make your own, flour and water. |
00:41.11 |
IriX64 |
``Erik, the bird of discretion just whispered
in my ear ;) |
00:42.44 |
IriX64 |
louipc my hardly *nix system rendered havoc at
a new angle, visit www.spaces.live.com/Irix64 |
00:44.49 |
``Erik |
... |
00:45.00 |
``Erik |
back off the wallcandy, dude |
00:45.15 |
IriX64 |
urf blacklisted? |
00:45.34 |
IriX64 |
will tend to it. |
00:47.54 |
``Erik |
if you want to get the same angle every time,
check out the 'ae' command |
00:49.02 |
IriX64 |
got it. |
00:50.49 |
``Erik |
hm, "help" shows a list of commands |
00:51.14 |
IriX64 |
I always overlook the obvious for some reason
:) |
00:51.26 |
``Erik |
(and that's not even all of them) |
00:51.44 |
IriX64 |
he just do a ls is that right in the bin
dir? |
00:51.50 |
IriX64 |
heh i mean. |
00:52.45 |
``Erik |
a lot of the programs in bin/ have commands in
the tcl interpreter in mged, but there're other commands that don't
have a bin/ correlary |
00:53.21 |
IriX64 |
so moral of the story is "IriX64, just take a
look in all those lovely direcories". |
00:53.36 |
``Erik |
more like "rtfm" |
00:53.36 |
``Erik |
:D |
00:56.52 |
brlcad |
ahhhh, finally found out why jove is now
busted on os x |
00:58.12 |
``Erik |
it's an emacs variant, it's broken by design
O:-) |
00:59.58 |
``Erik |
it's been so long since I learned vi, I don't
remember if I was as dysfunctional initially as I am with emacs
now... :/ |
01:00.28 |
brlcad |
it's barely a variant |
01:01.36 |
brlcad |
I had a cheat sheet sitting on my desk for
about a week of non-stop coding before it became
effective |
01:01.51 |
brlcad |
but then also by then, nothing else could
compete |
01:02.03 |
brlcad |
and it just got better and better |
01:02.40 |
``Erik |
<-- still learning more about vi
o.O |
01:03.24 |
louipc |
read the fine manual ;) |
01:32.23 |
``Erik |
http://www.achewood.com/index.php?date=08222002 |
01:32.24 |
``Erik |
hehehe |
03:06.05 |
*** join/#brlcad IriX64
(n=mario_du@bas3-sudbury98-1168054557.dsl.bell.ca) |
03:06.56 |
IriX64 |
This windows archer.... it's quite
interesting. |
03:07.53 |
IriX64 |
are you planning on putting photon mapping
into it? |
03:08.27 |
brlcad |
i believe the ray-tracer is already
integrated, just a matter of feeding it the right options |
03:08.39 |
brlcad |
there's no gui if that's what you mean, like
the lighting menu in mged |
03:08.52 |
IriX64 |
urmf, i'll learn, I just started looking at
it. |
03:09.15 |
brlcad |
it's good stuff, it should be improved and
integrated more with mged |
03:09.34 |
IriX64 |
agreed, some really good work here. |
03:11.01 |
IriX64 |
the ability to extract selected components and
color them is neat. |
03:12.56 |
IriX64 |
s.nos1 in blue... nice. |
03:15.16 |
IriX64 |
hahah s.nos1 rt'ed beautiful job. |
03:32.23 |
*** part/#brlcad IriX64
(n=mario_du@bas3-sudbury98-1168054557.dsl.bell.ca) |
03:35.23 |
*** join/#brlcad bewt
(n=mario_du@bas3-sudbury98-1168054557.dsl.bell.ca) |
03:35.57 |
bewt |
was worried people would think I know
something about the IriX64 system. |
03:39.03 |
``Erik |
heh |
03:52.53 |
CIA-7 |
BRL-CAD: 03brlcad * 10brlcad/ (configure.ac
src/other/jove/teach-jove.in): add automatic generation of the
teach-jove script during configure |
03:53.05 |
bewt |
libtool, it's gotta be libtool. :( |
04:14.18 |
bewt |
sorry i mentioned apache here but brlcad is
sometimes too big :) |
04:14.27 |
bewt |
err BRL-CAD. |
04:16.30 |
bewt |
bah i quit, it wasn't libtool. |
04:23.31 |
bewt |
tried it showed me nothing, but here's
something, the rev on libapr-0.la doesn't mach the libtool i'm
using. |
04:25.53 |
bewt |
and their ltmain bombs. |
04:28.55 |
*** join/#brlcad cad19
(n=59ac9221@bz.bzflag.bz) |
05:17.57 |
Maloeran |
Am I missing something or there's no efficient
way to do triple or N buffering with SDL? |
05:45.50 |
Maloeran |
There's no way around the extra and wasteful
copy from a frame surface to the pseudo-video surface, which in
turn needs a copy to the actual video surface to be visible. Oh
well, that wouldn't be a problem with X shared memory
pixmaps |
05:52.36 |
brlcad |
it does it that way because you can't
necessarily get access to the video surface |
05:52.50 |
brlcad |
depends on the video card and driver
heavily |
05:53.34 |
brlcad |
so they do what works regardless (and
apparently haven't gotten to an optimization of doing the direct
blit when possible, though that has it's tradeoffs) |
05:54.00 |
*** join/#brlcad bewt
(n=mario_du@bas3-sudbury98-1168054557.dsl.bell.ca) |
05:55.05 |
brlcad |
you can do triple, N buffering, but not
without getting a handle on the SDL internal for whatever platform
you're on |
05:55.38 |
brlcad |
and if you're going to go that route, might as
well write your own X code and forget portability |
05:56.59 |
Maloeran |
SDL could have exposed capabilities to do N
buffering without too much trouble, it would always have avoided
the extra copy no matter the platform |
05:58.55 |
Maloeran |
Having one software surface being copied to
the video surface, or having multiple software surfaces being
copied in turn, it's pretty much the same really |
05:59.44 |
brlcad |
and i'm sure you would have heard "patches
welcome" |
05:59.51 |
brlcad |
sounds like a great feature, implement it
;) |
06:00.03 |
CIA-7 |
BRL-CAD: 03brlcad *
10brlcad/autogen.sh: |
06:00.03 |
CIA-7 |
BRL-CAD: hmm.. such a conundrum.. it is nice
to clean up and blow away the aclocal.m4 |
06:00.03 |
CIA-7 |
BRL-CAD: that configure drops in but now that
recursive configure works, tcl/tk actually |
06:00.03 |
CIA-7 |
BRL-CAD: use their own custom aclocal.m4
(instead of acinclude.m4) so deleting the file |
06:00.03 |
CIA-7 |
BRL-CAD: has undesireable impact on build
prep. disable aclocal.m4 deletion for now. |
06:00.42 |
brlcad |
reality is that it's quite a bit more
complicated than you give it credit for to do reliably across
various cards and without undesirable impact |
06:01.27 |
Maloeran |
It's purely a software, API and logic problem
really... |
06:01.44 |
brlcad |
say you were on a card that actually a) had a
means to get at video memory that you could b) reliably detect via
sdl/opengl facilities .. as to whether to use it |
06:02.22 |
Maloeran |
brlcad, all the surfaces can be in system
memory, you just need to be able to copy from any of the directly
to the video surface |
06:02.26 |
bewt |
``Erik, private wall candy is getting better
;) |
06:02.28 |
brlcad |
then take for example you have a card that
only has 16 or 32 MB of memory.. you could perhaps do in-memory
buffering, but leaving little to nothing to the app |
06:03.00 |
Maloeran |
any of them* directly |
06:03.07 |
brlcad |
Maloeran: sure, they can all be in memory --
that's what they do for double buffering now iirc |
06:03.29 |
brlcad |
system memory that is |
06:03.39 |
Maloeran |
Yes, and there's absolutely no reason not to
allow triple, quad or quntillion buffering if one has the system
memory for it |
06:03.48 |
bewt |
brlcad, virtual memory comes to mind, but then
so does disk thrashing. |
06:03.52 |
brlcad |
even better is to actually write directly to
video memory if you wanted to tune for the best
performance |
06:04.19 |
Maloeran |
It's better to write pixels to system memory
and DMA the whole thing afterwards |
06:04.32 |
brlcad |
if that is available, sure |
06:04.55 |
bewt |
err a pixel has numerous bits. |
06:05.11 |
bewt |
you would slow it down using DMA. |
06:05.44 |
Maloeran |
Oh well, copying 150 frames of 800x600 twice
per second instead of once does not sound appealing, just because
of a SDL limitation |
06:05.55 |
bewt |
DVA is preferred but certainly not
portable. |
06:06.02 |
brlcad |
Maloeran: if I remember back correctly, you
can create your own sdl surfaces and do your own buffering too,
providing your quintillion buffering |
06:06.41 |
Maloeran |
Really? Any clue on what to look for? I really
didn't see anything like that |
06:07.28 |
Maloeran |
You can create surfaces, but to actually get
them to show on the screen, you would have to : copy them to the
SDL's "screen" surface, ask SDL to copy the "screen" surface to the
actual video surface |
06:07.58 |
brlcad |
you create an sdl sw surface, and then use
that with sdl_flip |
06:08.21 |
brlcad |
you can toggle between arbitrary surfaces on a
flip |
06:08.21 |
Maloeran |
SDL_flip is for the one double buffered
"screen" surface |
06:09.10 |
Maloeran |
SDL_Flip() takes one parameter and it's SDL's
"screen" surface which may have a back buffer built-in, but that's
very limited |
06:10.24 |
brlcad |
that's what I'm referring too .. this goes
back a while, but the idea is to create multiple sdl_surface
screens in sw mode |
06:11.03 |
Maloeran |
There's no way to render these without copying
them to "screen", then asking SDL to update "screen" to video, is
there? |
06:11.04 |
brlcad |
they the video mode has to be double buffered
regardless, just so you can flip |
06:11.33 |
Maloeran |
Create multiple screen surfaces? Oh
hum |
06:11.35 |
brlcad |
you maintain one "screen" for each of your
surfaces |
06:11.39 |
brlcad |
right |
06:12.06 |
Maloeran |
I didn't read anything about that, I'll try
something |
06:12.17 |
brlcad |
that's just the old sdl way to do your own
buffering |
06:12.17 |
Maloeran |
If you have any example or documentation, it
could be nice |
06:12.26 |
brlcad |
e.g. if you had no video memory |
06:12.34 |
brlcad |
ideally, you'd try to get as many screens with
SDL_HWSURFACE first |
06:13.05 |
brlcad |
since should try to do direct mapped video
memory if the card supports it |
06:13.24 |
brlcad |
but the code is a bit nasty to be fault
tolerance to detect the failure and fall back to
SDL_SWSURFACE |
06:13.33 |
Maloeran |
Writing pixels to hardware surfaces is a bit
too slow, I'm fine with them being in software |
06:13.43 |
brlcad |
and then wierd things can happen if you have
two hw and one sw, etc |
06:13.44 |
Maloeran |
I just want them to get directly in the real
video surface with just one copy |
06:14.33 |
brlcad |
if you're doing your own buffering, the hw
surface is going to be darn faster than doing sw -- you're just
making sdl do the write to a hw surface |
06:16.10 |
Maloeran |
Yes, that's probably right... HW only works
fullscreen though, usually, but I'll play around once I get the
buffering working |
06:16.34 |
Maloeran |
I'm surprised there's not a word about this in
the SDL docs |
06:16.40 |
brlcad |
ahh, yeah that's true.. lots of cards won't
let you get a hw surface in various modes |
06:16.49 |
brlcad |
that's part of the whole robustness problem i
mentioned |
06:20.04 |
brlcad |
Maloeran: it's rare for an app to actually
benefit from triple buffering .. exceedingly rare even for
games |
06:20.52 |
brlcad |
and many display systems are providing
double-buffering of their own these days, so you get triple for
free when you double-buffer your own |
06:21.33 |
Maloeran |
Indeed, but it's a different when dealing with
software rendering multiple frames at the same time |
06:21.34 |
brlcad |
depends on the OS and system, of course .. not
too common on linux iirc |
06:23.28 |
Maloeran |
a bit* different |
06:24.17 |
brlcad |
yep, and the variety of apps that need to
render frames is a tiny "market" |
06:25.02 |
brlcad |
ray-tracers .. fractal generators .. maybe
screensavers.. |
06:25.27 |
bewt |
brlcad: my on board video cheats, it uses
system ram for video memory. |
06:25.33 |
brlcad |
i think what you're wanting to do used to be a
lot more popular a decade or two ago |
06:25.47 |
brlcad |
when you couldn't get the hardware to
double-buffer |
06:26.43 |
brlcad |
bewt: yep, pretty common to push the app to
video so the mod can modify the frames on the fly |
06:26.58 |
bewt |
reserved for video 64-256m |
06:27.02 |
Maloeran |
Other APIs have good support for that kind of
stuff, it was rather trivial with X and... DX3 ( okay, a long time
ago :) ) |
06:27.35 |
brlcad |
yeah, it's fairly trivial in win32 and with
cocoa .. |
06:28.49 |
brlcad |
another side effect of there not being many
serious games on linux .. issues like this have always been a
problem -- X11 being an absolute pig in most respects until very
very recently |
06:29.56 |
Maloeran |
X isn't that bad with shared memory
pixmaps |
06:30.16 |
bewt |
X isn't bad with opengl either. |
06:30.31 |
brlcad |
heh, compared to the other systems, X11 is one
of the worst |
06:30.41 |
bewt |
define other systems. |
06:30.44 |
brlcad |
it's really been only in the past 5-10 years
that it's improved |
06:31.06 |
brlcad |
closer to 5 for that matter, Xorg corrected a
lot of the boneheadness of X11 |
06:31.09 |
bewt |
granted, but many systems go thru a
learning/growing curve. |
06:31.27 |
bewt |
look at the roots of windows :) |
06:31.33 |
brlcad |
that doesn't hold for X11, it's older than all
of the others |
06:31.44 |
Maloeran |
Ah well. That's probably right, but I was
beginning high school 10 years ago and writing my first lines of
code :) |
06:31.53 |
bewt |
so X is a little slow, big deal |
06:32.09 |
brlcad |
heck, even having shared memory on linux used
to be problematic |
06:32.44 |
brlcad |
it's only been really recent that you could
get direct opengl access through X11, and it's still somewhat
flaky |
06:32.50 |
bewt |
X was at inception problematic, but then so
was the Model T |
06:33.10 |
bewt |
try it on windows xp pro |
06:33.29 |
brlcad |
I dont' think it was "problematic", but it was
fundamentally flawed from a performance perspective because it had
a network-oriented design |
06:34.09 |
bewt |
that network design led to many Xterminal, (X
in hardware at least the client side) |
06:34.11 |
Maloeran |
It's far more complex than other APIs for this
reason, but it's still rather elegant, I have no problem with
it |
06:34.15 |
brlcad |
when everything is a
client->server->client->hw communication .. you're going
to seriously suck compared to something doing app->hw |
06:34.33 |
brlcad |
it's been recent that X11 changed so that you
could do client->hw more reliably |
06:34.42 |
bewt |
that should read
app->os>hardware |
06:34.54 |
brlcad |
elegant? .. heh .. er .. wow |
06:35.06 |
brlcad |
comprehensive.. yes |
06:35.12 |
brlcad |
i wouldn't call it elegant in the least
though |
06:35.13 |
Maloeran |
It solves a fairly complex problem |
06:35.26 |
bewt |
quite well at that |
06:35.27 |
brlcad |
it makes the problem considerably more complex
than it needs tob e |
06:36.21 |
brlcad |
it does have a lot of great aspects, that can
be said |
06:36.51 |
Maloeran |
Right |
06:36.54 |
bewt |
making the root window, hidden makes it faster
yet |
06:37.15 |
brlcad |
but from an overall utility, and compared to
the other APIs out there, it's a big reason GUI development on
linux/unix/bsd has been so slow for two decades compared to the
other platforms |
06:37.54 |
Maloeran |
Is there? X is extremely low-level in
comparison to other "native" APIs, one generally uses toolkits
built on top of it |
06:37.55 |
brlcad |
granted, a lot of the problems were actually
political, and not technical |
06:39.24 |
bewt |
and not a very good one :) |
06:40.32 |
brlcad |
i'm talking about equivalent "base" api kits
for managing the display -- things like core graphics or even the
old toolbox on mac, the mfc/win32 foundation libraries, be's
graphic server, etc |
06:40.35 |
Maloeran |
I think I just really like the low-level and
flexibility aspects of X, it's really powerful. It's the assembly
of GUI programming ;) |
06:41.04 |
Maloeran |
win32 remains quite a mess, but it's very
limiting and high-level, it can afford to be simpler |
06:41.22 |
brlcad |
win32 goes high and low |
06:41.30 |
brlcad |
which is what makes it seem not
simple |
06:41.52 |
brlcad |
there are calls for everything low level too,
though |
06:42.12 |
bewt |
sadly no more inportb() |
06:42.16 |
Maloeran |
Ah yes, perhaps, I try to forget my win32
days |
06:42.49 |
brlcad |
the other two are much better examples of
pretty APIs, clean low fast nice |
06:43.15 |
brlcad |
Be's was spectacular, but alas.. |
06:43.18 |
bewt |
would that they would adopt a universal
API |
06:44.00 |
brlcad |
bewt: how's that compile coming with
LDFLAGS=-verbose ? |
06:44.01 |
Maloeran |
BeOS and its famous is_computer_on_fire() :).
I never tried any native Mac programming |
06:44.13 |
Maloeran |
In fact, I think I never used a Mac |
06:44.58 |
brlcad |
core graphics isn't too shabby |
06:46.29 |
brlcad |
cocoa is sweet, but is a higher level api akin
to gtk/qt |
06:47.05 |
Maloeran |
gtk2 I liked, but I don't do much
GUI |
06:49.53 |
brlcad |
it's a bit of a beast, and lives in dependency
hell, but great featureset |
06:50.03 |
brlcad |
and the predominant industry
momentum |
07:59.46 |
bewt |
brlcad: building rt for you now. |
07:59.53 |
bewt |
err rtlib. |
08:00.09 |
bewt |
doh librt. |
08:03.59 |
IriX64 |
http://www.pastebin.ca/374105 |
08:06.11 |
IriX64 |
btw, that wall candy is still doing its
thing. |
08:11.41 |
IriX64 |
http://www.pastebin.ca/374109 |
08:22.18 |
brlcad |
librt is not the situation that was causing
problems |
08:22.46 |
brlcad |
you're starting from flawed premises.. you
can't just start tossing stuff in the middle like that |
08:23.54 |
brlcad |
from a *fresh* build .. the point was to add
the --verbose ld flag *after* you encountered the libz and/or
libpng build failure (*without* using --disable-shared) |
08:24.46 |
brlcad |
seriously.. all the rest is distracting from
making any progress on identifying the first problem .. |
08:25.10 |
brlcad |
stuff failing farther down the build line is
not interesting at all until the first failure is taken care of
properly |
08:25.30 |
IriX64 |
whats the point of adding the flag *after the
error with libpng |
09:07.31 |
brlcad |
for several reasons, to be sure that it errors
(it should still error), and so that the output is just the
relevant verbose linkage details and not pages of irrelevant
log |
09:08.29 |
brlcad |
otherwise the signal noise ratio begins to be
practically useless -- too much useless garbage that doesn't get us
anywhere closer to finding out what the actual problem is |
09:24.04 |
*** join/#brlcad dtidrow
(n=dtidrow@c-69-255-182-248.hsd1.va.comcast.net) [NETSPLIT
VICTIM] |
09:29.48 |
*** join/#brlcad archivist
(n=archivis@host217-35-76-52.in-addr.btopenworld.com) |
12:15.42 |
*** join/#brlcad dli
(n=dli@adsl-75-33-245-220.dsl.chcgil.sbcglobal.net) |
12:16.13 |
dli |
I wonder how do I show screw thread in
brlcad |
12:37.53 |
*** join/#brlcad rossberg
(n=rossberg@bz.bzflag.bz) |
12:42.41 |
dli |
how do I print out the 3d image? |
12:43.07 |
CIA-7 |
BRL-CAD: 03d_rossberg * 10brlcad/configure.ac:
test for strlcpy |
12:46.48 |
CIA-7 |
BRL-CAD: 03d_rossberg *
10brlcad/src/libsysv/strlcpy.c: initial addition of
strlcpy() |
12:48.30 |
CIA-7 |
BRL-CAD: 03d_rossberg *
10brlcad/include/sysv.h: |
12:48.30 |
CIA-7 |
BRL-CAD: initial addition of
strlcpy() |
12:48.30 |
CIA-7 |
BRL-CAD: typo in basename
declaration |
12:50.12 |
CIA-7 |
BRL-CAD: 03d_rossberg *
10brlcad/include/config_win.h: HAVE_MEMSET and HAVE_STRTOK
added |
12:52.12 |
CIA-7 |
BRL-CAD: 03d_rossberg *
10brlcad/src/libsysv/basename.c: |
12:52.12 |
CIA-7 |
BRL-CAD: errno.h defines
ENAMETOOLONG |
12:52.12 |
CIA-7 |
BRL-CAD: should know its own
prototype |
12:54.39 |
CIA-7 |
BRL-CAD: 03d_rossberg *
10brlcad/src/libsysv/strlcpy.c: should know its own
prototype |
12:56.28 |
CIA-7 |
BRL-CAD: 03d_rossberg *
10brlcad/src/libsysv/libsysv.dsp: basename.c and strlcpy.c
added |
12:57.36 |
CIA-7 |
BRL-CAD: 03d_rossberg *
10brlcad/src/libsysv/Makefile.am: strlcpy.c added |
13:03.57 |
CIA-7 |
BRL-CAD: 03d_rossberg *
10brlcad/src/libbu/brlcad_path.c: include sysv.h to get the
basename prototype (in case HAVE_BASENAME is not defined) |
13:09.05 |
CIA-7 |
BRL-CAD: 03johnranderson *
10brlcad/src/librtserver/rtserver.c: Added mutex protection for
session open and close |
13:31.40 |
rossberg |
dli: what's a 3d image? |
13:31.59 |
dli |
rossberg, from raytracing |
13:32.43 |
dli |
rendering as postscript is ugly, and not what
I see on screen |
13:35.05 |
rossberg |
i'm using the ray trace panel in mged, it has
an option to write the result into a *.pix file |
13:35.40 |
dli |
rossberg, howto? |
13:35.53 |
rossberg |
there are programs to convert the pix format
e.g. into png |
13:36.19 |
dli |
rossberg, how to output to .pix? |
13:36.51 |
rossberg |
menubar -> Tools -> Raytrace Control
Panel |
13:38.06 |
rossberg |
there you have to change the
"Destination" |
13:38.15 |
dli |
rossberg, that's the same panel as in File
->Raytrace |
13:38.46 |
dli |
rossberg, great, thanks |
13:49.14 |
dli |
rossberg, the .pix is not valid for
imagemagick |
13:51.26 |
rossberg |
dli: you need to convert it e.g. with
pix-png |
13:51.47 |
rossberg |
(look at man pix-png first) |
13:52.31 |
dli |
rossberg, no, the file generated is invalid,
repeating 0x320000 , nothing else |
13:52.53 |
dli |
indeed, it's 0x000032 |
13:53.04 |
Maloeran |
brlcad, multiple calls to create "screen"
surfaces to perform N buffering always return the same surface ;
doesn't seem to be the recommended method |
13:56.00 |
rossberg |
dli: did you tried "pix-png -a yourfile.pix
> yourfile.png |
13:56.41 |
Maloeran |
The #sdl crowd doesn't seem to know
either |
13:57.01 |
dli |
rossberg, only garbage in the .png
generated |
13:58.14 |
dli |
rossberg, hold on, it's not all
0x000032 |
13:59.21 |
dli |
<PROTECTED> |
13:59.22 |
dli |
pix-png: unable to autosize |
14:05.56 |
rossberg |
dli: ok, now try pix-png -w <width in
pixel> -n <height in pixel> sample-holder.pix >
sample-holder.png |
14:07.23 |
dli |
rossberg, great, it's an imagemagick bug
then |
14:16.25 |
*** join/#brlcad Elperion
(n=Bariton@p54874995.dip.t-dialin.net) |
14:19.27 |
*** join/#brlcad Bary
(n=Bariton@p54874995.dip.t-dialin.net) |
14:20.30 |
*** join/#brlcad Elperion
(n=Elperion@p54874995.dip.t-dialin.net) |
14:25.39 |
Elperion |
is there a way to export the framebuffer as
graphic? |
14:34.38 |
rossberg |
Elperion: (menubar)File -> Raytrace; change
"Destination" to pix-file; read the pix-png manual page |
14:36.01 |
Elperion |
ok thx |
14:36.24 |
Elperion |
great |
14:36.27 |
Elperion |
i never looked there |
14:36.28 |
Elperion |
cya |
15:08.52 |
dli |
any way to move a part ( .r range)? like
linear shift |
15:56.01 |
``Erik |
int32 is_computer_on(void) Returns 1 if the
computer is on. If the computer isn't on, the value returned by
this function is undefined. |
15:56.12 |
``Erik |
double is_computer_on_fire(void) Returns the
temperature of the motherboard if the computer is currently on
fire. If the computer isn't on fire, the function returns some
other value. |
15:56.23 |
``Erik |
interesting, those beos kids have a sense of
humor :) |
16:40.53 |
brlcad |
wow, the same question twice in one
morning |
16:44.10 |
Maloeran |
brlcad, confirmed by SDL folks, SDL can't do N
buffering without nasty extra copies |
16:45.20 |
brlcad |
Maloeran: define "nasty extra
copies" |
16:45.37 |
Maloeran |
Copy from surface N to "screen" surface, copy
from "screen" surface to video memory |
16:46.01 |
Maloeran |
So there are 2 copies per frame when only one
should be required with a proper API |
16:47.09 |
Maloeran |
I'm vaguely amused by how much faster non-SDL
buffering to record videos is |
18:48.49 |
brlcad |
Maloeran: er .. you only get the one copy with
some sort of direct memory access, mapping video memory to some
address range in system memory |
18:49.36 |
brlcad |
that much was already pretty much guaranteed
to not be portably possible |
18:49.40 |
brlcad |
I thought you understood that just from what
we talked about earlier.. |
18:50.14 |
brlcad |
that's why they are SDL_SWSURFACEs |
18:51.42 |
brlcad |
you cannot guarantee just one copy without
having the hardware capability irrsepective of the API (which maybe
is what you are presuming/assuming) |
18:54.14 |
Maloeran |
brlcad, SDL can copy the content of the
software "screen" surface to the actual video memory with just one
copy |
18:54.43 |
Maloeran |
If I want to copy another software surface,
not the software "screen" surface, I need two whole copy
operations |
18:55.11 |
Maloeran |
It's an arbitrary limitation, just to keep the
API simple |
18:56.58 |
brlcad |
not sure I follow what you mean by "another
software surface, not the software "screen" surface" |
18:57.28 |
brlcad |
you create an sdl_surface .. you write pixels
to it |
18:57.41 |
brlcad |
sdl copies those to video memory |
18:57.54 |
Maloeran |
That works for the software "screen" surface,
yes |
18:58.04 |
brlcad |
right |
18:58.22 |
Maloeran |
If you want to copy another surface to video
memory, you first have to copy it to the software "screen" surface,
*then* you have to copy the software "screen" surface to video
memory |
18:58.34 |
Maloeran |
Which is terribly wasteful |
18:59.15 |
brlcad |
you have another screen surface |
18:59.38 |
Maloeran |
You can only have one "screen"
surface |
18:59.49 |
brlcad |
you have another sdl_surface |
19:00.29 |
Maloeran |
Yes, but you can not copy from it directly to
video memory |
19:00.35 |
brlcad |
i'm just not following what you expect
"should" be possible, other than it sounding like you wanting
hardware surfaces |
19:00.40 |
Maloeran |
You can only copy from it to the "screen"
surface, which must in turn be copied to video memory |
19:01.06 |
brlcad |
right, but you CAN'T do that reliably without
assuming hardware capabilities |
19:01.10 |
Maloeran |
I should be able to have 10 software
"surfaces", and myself copy the data from any of them directly into
video memory |
19:01.34 |
Maloeran |
The only limitation is system memory, there's
still only one hardware surface |
19:01.55 |
brlcad |
what you're talking about is writing to mapped
video memory .. video memory mapped to system memory so you are
effectively writing to video memory |
19:02.40 |
brlcad |
there are some cards that will directly
reference system memory for you, but even that is not
prevalent |
19:02.50 |
Maloeran |
Writing to it, DMA'ing to it ; I should be
able to copy from a surface directly to the real video hardware
surface ( not SDL's "screen" ) |
19:03.14 |
brlcad |
with DMA .. that's exactly what I'm saying is
a hardware characteristic |
19:03.20 |
brlcad |
not something that can be taken for
granted |
19:03.25 |
Maloeran |
... Okay, I think I need to clarify |
19:03.51 |
Maloeran |
SDL already copies from the *software* single
and only screen surface directly, with one copy, no matter the
underlying method used |
19:04.26 |
brlcad |
sure, you provide the pixels, and it stores
them *somewhere* |
19:04.28 |
Maloeran |
It should be possible to have other identical
*software* surfaces which could be copied by SDL directly in the
video memory, by the same mechanisms. They are all software
surfaces, it doesn't even matter which one is being
copied |
19:05.18 |
brlcad |
it's only "directly in the video memory" when
you have video mapped memory, DMA or equivalence |
19:05.33 |
Maloeran |
I'm not ever accessing that memory directly,
SDL is |
19:05.42 |
brlcad |
sure |
19:05.58 |
Maloeran |
SDL is copying from its "screen" software
surface directly into the video memory, but it can't copy directly
from any other surface |
19:06.26 |
Maloeran |
And that is most arbitrary, it's an API and
design limitation ; it's easily done in X or DX |
19:07.24 |
brlcad |
ahh, maybe you mean it copies from what system
memory buffer to another system memory buffer before sending to the
video card? .. i.e. tying a particular surface to the video mapped
hardware? |
19:08.27 |
Maloeran |
Yes, that's the only way to copy from one
software surface to video memory, you have to go through the
software "screen" surface with SDL first |
19:08.56 |
brlcad |
aah, okay.. that's not what you were initially
saying |
19:09.04 |
brlcad |
at least not the way it was worded |
19:09.17 |
brlcad |
but then we only have like three nouns to work
with here.. heh |
19:09.35 |
Maloeran |
It sure is what I'm trying to explain by 10
different ways since yesterday :) |
19:09.55 |
brlcad |
i can see that, though I recall there being a
way to change swap "screen" surfaces |
19:09.57 |
*** join/#brlcad cad65
(n=4788598e@bz.bzflag.bz) |
19:10.04 |
brlcad |
maybe that's no longer possible |
19:10.26 |
brlcad |
that's what I was referring to with the flip
-- you actually flip to an entirely different screen |
19:10.40 |
cad65 |
i can't access freenode from my irc client
today - can anyone here help me out? |
19:10.54 |
brlcad |
that may or may not be a double-buffered
hardware surface, or might be a software one |
19:10.54 |
Maloeran |
The built-in SDL flipping capabilities are
limited to two surfaces |
19:11.27 |
cad65 |
i'm using a web chat now |
19:11.31 |
cad65 |
here's what i'm getting - http://www.scipisc.com/view_image.php?id=181 |
19:11.44 |
brlcad |
right, that much I know.. but there at least
used to be (or at least I remember there being many years ago) a
way to point the second buffer to an arbitrary sdl_surface so when
you do the flip, it becomes primary |
19:12.09 |
brlcad |
cad65: it's rather obvious you're using web
chat ;) |
19:12.18 |
Maloeran |
Very neat, I guess it must have been dropped,
most unfortuantely |
19:12.35 |
brlcad |
Maloeran: I bet you can still do it |
19:12.36 |
cad65 |
brlcad: oh |
19:12.37 |
cad65 |
lol |
19:12.48 |
brlcad |
but probably not through the public SDL
api |
19:13.13 |
brlcad |
you'd probably have to set some struct values
on your own |
19:13.14 |
brlcad |
because the basic operation should be
doable |
19:13.18 |
cad65 |
so how do I get help on my irc client
connection issue? its only to freenode |
19:13.19 |
Maloeran |
I see, does SDL have a hidden API or must I
hack the source to expose its static functions? |
19:13.25 |
Maloeran |
This is messy |
19:13.27 |
brlcad |
dunno, maybe they do a lot more to manage the
screen surface these days |
19:13.56 |
cad65 |
i am connected just fine to the mozilla
client |
19:14.13 |
Maloeran |
Oh well, it's just annoying to seriously lose
performance due to SDL when getting above 100fps |
19:14.16 |
brlcad |
Maloeran: not exactly hidden .. i mean you'd
just have to read thier sources to see what they do during sdl_flip
to determine what you'd need to update in the associated screen to
get it to work |
19:14.31 |
brlcad |
cad65: can you ping
irc.freenode.net? |
19:14.54 |
brlcad |
Maloeran: ahh.. you're complaining about
100+fps only? bahhh. :) |
19:14.59 |
cad65 |
let me check |
19:15.19 |
cad65 |
brlcad: since I can connect to different
servers, shouldn't I be able to connect to freenode as
well? |
19:15.30 |
brlcad |
cad65: of course not, it's a different server
:P |
19:15.47 |
cad65 |
well, no problem with pinging |
19:15.59 |
cad65 |
oh...okay (irc rookie here) |
19:16.02 |
Maloeran |
Well, brlcad, I lose a 10% at around 30fps...
and I lose 50% due to SDL at 200fps! |
19:16.14 |
cad65 |
so the ping was successful |
19:16.21 |
cad65 |
are there any irc moderators in
here? |
19:16.33 |
brlcad |
cad65: you mean network or channel? |
19:16.43 |
brlcad |
cad65: you do realize you're in a cad channel?
:) |
19:17.07 |
brlcad |
cad65: you might want to try a different
port |
19:17.21 |
cad65 |
hrm |
19:17.24 |
cad65 |
interesting |
19:17.46 |
cad65 |
and a port could block one server to my irc
client and not another one? |
19:17.56 |
brlcad |
sure, why not |
19:18.25 |
brlcad |
not likely, but possible |
19:18.58 |
cad65 |
darn...I can't switch rooms in this web
interface |
19:19.17 |
brlcad |
yep, it's configured that way on
purpose |
19:19.36 |
brlcad |
otherwise you could cause all sorts of trouble
and we'd be liable for problems you cause |
19:20.07 |
brlcad |
that web interface is intended for interactive
discussion about BRL-CAD |
19:20.29 |
brlcad |
how you got to it as a general means for
freenode network support is beyond me |
19:21.01 |
cad65 |
lol - I just found it |
19:21.04 |
cad65 |
sorry to bother you |
19:21.07 |
brlcad |
for starters, you could try a better irc
client than chatzilla |
19:21.28 |
brlcad |
something that might give you better output
status |
19:25.31 |
Maloeran |
:) Nice |
19:30.27 |
*** join/#brlcad dli
(n=dli@wireless-197-79.uchicago.edu) |
19:30.59 |
dli |
which command to rescale? |
19:42.39 |
CIA-7 |
BRL-CAD: 03jlowenz * 10brlcad/include/
(vector_x86.h vector_fpu.h vector.h): Add vector class, with very
initial support for simd operations. |
19:43.29 |
CIA-7 |
BRL-CAD: 03jlowenz * 10brlcad/include/brep.h:
Include vector class for use by brep intersection
routines |
19:44.49 |
CIA-7 |
BRL-CAD: 03jlowenz *
10brlcad/src/librt/Makefile.am: Add compilation of brep_test
program |
19:46.08 |
CIA-7 |
BRL-CAD: 03jlowenz *
10brlcad/src/librt/brep_test.cpp: Add brep_test program for simple
unit testing |
19:46.32 |
Maloeran |
I think I'll never understand why people make
a class or a struct for a mere "vector" rather than an array,
especially to use SIMD instructions |
19:50.37 |
Maloeran |
i.e. If you have 4 packed vectors of x,y,z,
you could often operate on the 12 floats with just 3 instructions,
try to do nicely that with 4 structs or classes |
19:52.21 |
*** join/#brlcad Elperion
(n=Elperion@p54874995.dip.t-dialin.net) |
20:00.00 |
*** part/#brlcad Elperion
(n=Elperion@p54874995.dip.t-dialin.net) |
20:00.04 |
*** join/#brlcad Elperion
(n=Elperion@p54874995.dip.t-dialin.net) |
20:10.07 |
*** join/#brlcad clock_
(i=clock@84-72-88-134.dclient.hispeed.ch) |
20:18.38 |
brlcad |
Maloeran: primarily for type transparency and
operator overloading |
20:20.17 |
brlcad |
so you're not actually tied to particular simd
types, and don't need to resort to *_add() functions where a + b
might provide cleaner code |
20:21.01 |
brlcad |
if you don't care about or don't leverage
those two features, then yes -- they are completely unnecessary
overhead |
20:22.05 |
clock_ |
leverage that is a word used often in PR
:) |
20:22.25 |
brlcad |
as are lots of other words, your point?
:) |
20:23.10 |
brlcad |
i mean if you made a vector class and still
had a ->add() method.. that would be a bit silly, and doesn't
utilize the type transparency benefit |
20:24.46 |
Maloeran |
Indeed brlcad, it just really gets in the way
of optimisation, especially for SIMD |
20:25.07 |
brlcad |
not when it's done right |
20:25.19 |
brlcad |
it "should" expand out into exactly the same
inline'd calls |
20:25.28 |
brlcad |
when it's implemented correctly |
20:25.44 |
brlcad |
no object/function calls, no evil vtable
lookups, etc |
20:26.27 |
Maloeran |
Sure sure... I'm just saying I may want to
load a x,y,z vector and the x of the following vector into one
__m128 |
20:26.33 |
brlcad |
it the coder doesn't make a mistake and the
compiler does it's just, you can end up with the same result, but
simplified maintainable code |
20:28.13 |
brlcad |
what you suggest isn't orthogonal .. you could
write a routine that was overloaded to do exactly that that expands
to the same operations |
20:28.32 |
brlcad |
if you can write a macro/inline for it at
least, there's a way |
20:28.54 |
brlcad |
just with a class, you can avoid the
macro/function syntax for entire classes of problems |
20:29.34 |
brlcad |
that along with automatic initialization and
deallocations if any are really the only reasons of value,
imho |
20:30.18 |
brlcad |
and there are plenty of codes where that just
doesn't matter, like if the library itself is going to act as an
abstraction layer and hide the fact that it's doing sse under the
hood |
20:30.19 |
Maloeran |
I recognize the general value, it just seems
hardly compatible with low-level SIMD optimisation to my
eyes |
20:30.57 |
brlcad |
it's not a matter of compatibility, it's just
different syntax .. you end up with the same assembly for what I"m
referring to |
20:31.51 |
brlcad |
for the implementations where you don't, and
there's some penalty (like vtables), I'd completely agree .. that's
a bad idea, a very bad idea |
20:32.08 |
Maloeran |
Of course so, but perhaps we are not seeing
the same kind of low-level SIMD optimisations... |
20:32.28 |
Maloeran |
I mean, I have mixed floats and pointers in
the same __m128 ;) |
20:33.01 |
brlcad |
so long as you're taking about lines of code
being written, then we are talking about the same
optimizations |
20:33.38 |
brlcad |
all that changes it what functions you write
for your data types |
20:33.47 |
brlcad |
it expands to the same operations |
20:34.54 |
brlcad |
and those operations can be whatever you want
-- packing and unpacking floats and pointers, maintaining states or
not, doing whatever |
20:35.28 |
Maloeran |
Then you end up doing a class API which is
identical to the SIMD intrinsics |
20:35.31 |
brlcad |
its JUST a difference in syntax/wrapping, like
if you wrote all of your simd operations using a macro |
20:37.25 |
Maloeran |
Right, I agree of course, I guess the only
point is to map some common instructions to overloaded operators,
and expose an interface similar to intrinsics for all the
rest |
20:37.27 |
brlcad |
it could be identical or not, depends on how
you write it -- in general there are common patterns |
20:38.35 |
brlcad |
right, that is really the only point -- though
once you have that interface, you very likely can translate it to
other SIMD implementations too with no change to the code that used
those classes |
20:40.06 |
brlcad |
in practice, I don't find that latter to be as
much of a benefit as others claim, but some have zealotry on the
encapsulation benefit |
20:40.29 |
Maloeran |
Eheh, I noticed |
20:40.57 |
Maloeran |
You could write an interface to wrap the
original SIMD intrinsics just as well, anyhow |
20:41.57 |
brlcad |
yep, you can do the same thing in C |
20:42.21 |
brlcad |
only difference of wrapping in a class is
operator overloading and automatic init |
20:43.46 |
brlcad |
that was the main/only point from the start --
type transparency and operator overloading .. if you don't care
about that or wouldn't use those features much, then it does
diminish the benefits |
20:44.26 |
dli |
can I move a part (.r)? like linear motion, or
rotation |
20:45.16 |
brlcad |
I just found it odd that you'd "never
understand why people make a class" .. their reasoning (whether you
like or agree with it) seems perfectly understandable |
20:45.49 |
brlcad |
dli: tra and rot commands |
20:46.49 |
brlcad |
sry, orot and/or rotobj |
20:46.59 |
Maloeran |
brlcad, it does not seem reasonable to me when
one needs all the low-level flexibility of SIMD intrinsics to get
proper performance |
20:47.20 |
Maloeran |
SIMD intrinsics are a large interface, to
makign a class with all these capabilities is a lot of code which
serves little actual purpose |
20:47.32 |
Maloeran |
"so making" a class with |
20:47.53 |
Maloeran |
Just my personal view on the matter of
course |
20:47.53 |
brlcad |
Maloeran: heh, you keep making the leap to the
encapsulation in a class impacting performance and that's hogwash
when done correctly |
20:48.10 |
Maloeran |
Of course so, but it's still a lot of code
with very little purpose! |
20:48.12 |
brlcad |
it sounds like you just don't agree, and
that's fine with me -- your idea |
20:48.13 |
dli |
brlcad, " sed " says object is not
solid |
20:48.42 |
brlcad |
dli: sed is to edit primitives, you have to go
into object edit mode |
20:48.54 |
brlcad |
oed command or matrix edit via gui |
20:48.54 |
Maloeran |
I don't really like seeing 1000 lines of code
just to be a full and exact wrapper around something which would
have done the job as well. Anyhow... |
20:49.40 |
brlcad |
only because it rarely is a full and exact
wrapper |
20:49.52 |
brlcad |
but that's also just to wrap one
interface |
20:49.56 |
brlcad |
throw in two more |
20:50.12 |
Maloeran |
Ah yes, then it serves a purpose |
20:50.46 |
brlcad |
i've seen some people prefer it just for the
syntactic sugar though |
20:51.02 |
brlcad |
being able to add two things using +-/ instead
of some add(), etc |
20:51.29 |
brlcad |
regardless of needing a
pack_pointer_with_float() or whatever other tricks |
20:51.45 |
brlcad |
it keeps the simple simple |
20:51.56 |
brlcad |
dli: have you seen the quick reference cheat
sheet? |
20:52.03 |
brlcad |
http://ftp.brlcad.org/MGED_Quick_Reference_Card.pdf |
20:52.22 |
dli |
brlcad, yes, and thr trifold one, very
puzzling |
20:52.24 |
brlcad |
on the second page on the back in the first
column are the commands related to editing |
20:53.01 |
brlcad |
dli: yeah, it's not meant to be instructional
-- it's informative to the modelers that know most of the
operations but can't remember the command name or args,
etc |
20:54.13 |
brlcad |
dli: oed is likely the command that you want,
and is rather tricky to understand at first with the left and right
side business |
20:55.36 |
brlcad |
say you have some region named region.r and in
there is a combination comb.c with two primitives prim1.s and
prim2.s .. to use oed to edit the matrix over comb.c, you'd use oed
/region.r comb.c/prim1.s |
20:56.19 |
brlcad |
to rotate all instances of region.r, you'd use
oed / region.r/comb.c/prim1.s |
20:56.46 |
dli |
brlcad, I just want to rotate the whole
region.r |
20:56.47 |
brlcad |
you have to specify all the way down to a
primitive so that it's explicit as to which coordinate axis you are
editing about |
20:57.49 |
brlcad |
you have to anchor the edit from a known point
-- all primitives have a defined center and coordinate axis
orientation |
20:58.25 |
dli |
brlcad, let me play with it a little |
20:59.06 |
brlcad |
the second example, oed /
region.r/comb.c/prim1.s, sounds like what you want |
20:59.31 |
brlcad |
if you're just going to translate/rotate, then
the primitive doesn't really matter, pick any path down through the
region |
20:59.50 |
brlcad |
er, it matters for rotations.. but not
translations |
21:04.16 |
dli |
brlcad, oed path must starts from the current
showing region? this is hard for me, when the design is complex,
and I want to move one part |
21:06.54 |
*** join/#brlcad Elperion
(n=Elperion@p54874995.dip.t-dialin.net) |
21:08.11 |
*** join/#brlcad digitalfredy
(n=digitalf@200.71.62.161) |
21:08.37 |
dli |
brlcad, I found the "Matrix Selector", easier
now |
21:12.06 |
brlcad |
ahh, glad to hear it |
21:12.33 |
brlcad |
for what it's worth, oed has little to nothing
to do with what is currently showing |
21:13.12 |
brlcad |
e object.r, oed /
object.r/and/path/to/primitive.s |
21:13.52 |
brlcad |
which is what matrix selection does, though
first showing you which object's are displayed, then a list of the
paths to primtives |
21:14.26 |
brlcad |
so that it can build the "oed /
object/path/to/prim" for you |
21:31.35 |
*** part/#brlcad digitalfredy
(n=digitalf@200.71.62.161) |
21:33.12 |
IriX64 |
most beautifull thing, I've ever seen , took
all night but it's gorgeous. |
21:33.56 |
IriX64 |
798.70 seconds. |
21:34.43 |
IriX64 |
kudos to the BRL-CAD team. |
21:36.18 |
IriX64 |
``Erik, I'd really like to show you what my
little machine did :) |
21:41.05 |
clock_ |
brlcad: have you seen the Ronja
model? |
21:41.36 |
clock_ |
http://ronja.twibright.com/3d/ronja_3.png |
21:41.47 |
clock_ |
http://ronja.twibright.com/3d/ronja_2.png |
21:54.17 |
brlcad |
clock_: ooh, that's nice! |
21:55.12 |
*** join/#brlcad IriX64
(n=mario_du@bas3-sudbury98-1168054557.dsl.bell.ca) |
21:55.56 |
*** join/#brlcad lg_
(n=lg_@88.234.13.222) |
21:56.08 |
lg_ |
hi |
21:57.17 |
IriX64 |
regards |
21:57.42 |
lg_ |
back to brlworld... |
21:57.54 |
IriX64 |
from? |
21:58.22 |
lg_ |
;-) from offlineland |
21:59.48 |
lg_ |
reboot? wow, brlcad is not pure unix software
anymore... |
22:00.10 |
clock_ |
brlcad: thanks |
22:00.13 |
IriX64 |
define "pure unix" |
22:00.15 |
brlcad |
lg_: he reboots for his own benefit |
22:00.22 |
brlcad |
nothing to do with brl-cad :) |
22:00.29 |
clock_ |
brlcad: of course I also have a video of
rotating model |
22:00.35 |
IriX64 |
quite right sorry should have mentioned
that. |
22:00.39 |
clock_ |
brlcad: but I think last time you were not
able to play |
22:01.17 |
lg_ |
;-) |
22:01.51 |
IriX64 |
lg_ I have yet to finish my cup. |
22:02.33 |
lg_ |
well, i just finished two beers, its a bit
late here in turkey |
22:02.51 |
brlcad |
hehe |
22:02.58 |
IriX64 |
heh |
22:03.56 |
IriX64 |
nei eha boh? |
22:04.00 |
lg_ |
but only modeling a cup is mentioned in the
manuals, so i was on my own |
22:04.33 |
brlcad |
clock_: is there a really good installation
picture that showcases ronja and matches the model
closely? |
22:04.42 |
IriX64 |
ha how to model a beer, lets see you start
wiith hops or wheat ;) |
22:06.41 |
lg_ |
guess it is a union of both... and as there
are material properties to take care of, type will be region... r
beer.r u hops + wheat |
22:06.42 |
IriX64 |
haha right. |
22:06.44 |
*** join/#brlcad rdenatale
(n=rick@166-82-49-174.quickclick.ctc.net) |
22:09.34 |
rdenatale |
hello all, does this channel welcome modeling
questions from newbies? |
22:10.03 |
lg_ |
ok, all newbies say helloooo... ;-) |
22:10.51 |
rdenatale |
I'm just starting to use brl-cad and I've got
a bit of a conceptual block as to using transformations with nested
combinations |
22:15.20 |
clock_ |
brlcad: no |
22:20.48 |
rdenatale |
Let's say that I'm modeling an instrument
panel. I've got a combination for the basic panel itself which
combines primitives to make the right shape... |
22:21.22 |
rdenatale |
... Then I've got a subassembly consisting of
a raised subpanel with a few identical switches. ... |
22:23.11 |
rdenatale |
... the subassembly in this case is another
combination with a primitive shape for the subpanel, and references
to a combo for the switch which combines primitives and combos
making up... |
22:23.28 |
rdenatale |
... the switch handle, a nut, and a
washer.... |
22:24.07 |
rdenatale |
... Now I think that I want to build each of
these subpart combos and primitives at their own origins, and
then... |
22:24.53 |
rdenatale |
... combine them at the higher level with a
transformation matrix to position each subpart within the larger
part... |
22:25.41 |
rdenatale |
... but I'm not sure what's the best way to do
this with mged, since it only seems to provide first-class support
for positining primitive parts and not combos... |
22:25.47 |
rdenatale |
... Am I missing something? |
22:34.58 |
IriX64 |
erf... again, think back when I first came
here ;) |
22:35.36 |
brlcad |
heh "no" .. funny clock |
22:35.56 |
brlcad |
rdenatale: yes, questions always welcome..
response depends on audience and time of day ;) |
22:36.52 |
rdenatale |
thanks brlcad. |
22:37.25 |
brlcad |
rdenatale: you can do what you suggest,
applying arbitrary transformation matrices anywhere in the
hierarchy |
22:37.50 |
IriX64 |
btw brlcad: if I hit clear and display in the
geometry editor, doesn't clear the frame buffer. |
22:38.39 |
brlcad |
to do this via the gui, you usually will
display the geometry, then select Matrix Edit on the Edit menu ..
select the assembly/combination/non-primitive object that you wish
to apply a matrix over, then a path to a reference coordinate
system |
22:38.51 |
brlcad |
IriX64: that's intentional |
22:38.56 |
IriX64 |
ty |
22:39.02 |
brlcad |
framebuffer has it's own concept of
clearing |
22:39.26 |
IriX64 |
true, raytrace control panel allows for it so
no biggie. |
22:39.26 |
brlcad |
though it wouldn't be an unreasonable feature
request to combine them in the geometry editor |
22:39.38 |
IriX64 |
your choice. |
22:39.47 |
brlcad |
actually it's yours ;) |
22:39.53 |
IriX64 |
:) |
22:40.49 |
brlcad |
if it's something you'd like to see added, or
for any feature request really .. it helps to make the request at
http://sourceforge.net/tracker/?func=add&group_id=105292&atid=640805 |
22:40.57 |
brlcad |
else it get forgotten between
releases |
22:41.17 |
IriX64 |
ty i'll visit and add to favorites. |
22:41.31 |
rdenatale |
brlcad: I don't see Matrix Edit on the edit
menu (I'm using 7.8.3). I only see matrix selection and that only
lets me select primitives. |
22:41.32 |
brlcad |
rdenatale: the command line way to do what you
suggest is the oed command, which has tricky semantics to get used
to at first, but will eventually make sense ;) |
22:43.05 |
brlcad |
rdenatale: sorry .. my impreciseness |
22:43.08 |
rdenatale |
brlcad: yeah I saw oedit, but I can't figure
out what path_lhs and path_rhs are |
22:43.37 |
brlcad |
it is Matrix Selection -- the first primitive
selection dialog is your anchor coordinate axis (which mostly only
matters for rotations) |
22:43.59 |
brlcad |
select any one of those that include your
combination/region |
22:44.27 |
brlcad |
you'll then get another dialog where you can
select where to place the matrix along that path |
22:45.32 |
brlcad |
rdenatale: say you have a 'panel' assembly
that has a 'button.r' and 'switch.r', each containing a 'cyl.s'
primitive |
22:45.55 |
brlcad |
say you want to translate the switch.r
.. |
22:46.42 |
brlcad |
you'd "e panel" or "e switch.r" or use the
geometry browser and select one of those two .. say for simplicity
you "e panel" |
22:48.03 |
rdenatale |
brlcad: do I need these to be regions? The
problem is that my end product is going to be an stl file (for
stereolithograpy) ... |
22:48.08 |
brlcad |
to apply the transformation via the gui, you
select the matrix selection menu option, then select any one of the
lines that has switch.r in it .. the primitive only matters as a
coordinate axis reference point .. so say you select
/panel/switch.r/cyl.c |
22:48.32 |
rdenatale |
... and as I understand the conversion to stl,
it makes each region into a separate part. |
22:49.03 |
brlcad |
rdenatale: ideally, yes -- at some point in
the modeling process, regions/parts should be created, and
groups/assemblies should be built up from those regions |
22:49.16 |
brlcad |
if you define no regions, there will be one
created for you |
22:50.06 |
brlcad |
which for something like the converter, would
mean the whole object just ends up as one object .. and stl files
can only have one object per file anyways ;) |
22:51.26 |
brlcad |
to complete the example, after selecting
/panel/switch.r/cyl.c .. you'd then select switch.r to apply a
transformation to the switch.r being used in panel |
22:51.44 |
brlcad |
that corresponds to the oed command of: oed
/panel switch.r/cyl.c |
22:52.26 |
brlcad |
if you wanted to just translate some object ..
you'd do something like "e switch.r" and "oed /
switch.r/cyl.s |
22:53.01 |
rdenatale |
brlcad: so does path_rhs have to start with
either a region or a primitive part? ... |
22:53.45 |
brlcad |
it starts with the name of the thing you want
to translate .. some combination/region/assembly/part/group
object |
22:54.07 |
brlcad |
but it must include the path all the way down
to some primitive so it has a coordinate axis to work
with |
22:54.32 |
rdenatale |
I've got a tree like panel.c/switch.c/... and
if I enter oed panel.c switch.c it says something like "Error:
unable to find matching solid part" |
22:54.47 |
brlcad |
that is understandably confusing.. long been a
consideration to make more transparent, but there are legacy
support issues for the expert modelers |
22:55.34 |
brlcad |
right, that's an error.. it will be something
like oed /panel.c switch.c/some/path/to/a/primitive |
22:56.27 |
rdenatale |
brlcad: okay, do I understand this right if I
do oed panel.c switch.c/someprimitive_in_switch.c it will still
work on the matrix which transforms switch.c relative to panel.c
??? |
22:57.57 |
brlcad |
if I understand you right myself, yes
;) |
22:58.06 |
brlcad |
that will only transform the switch.c being
used in panel.c |
22:58.54 |
brlcad |
if you wanted to move all switch.c's, you'd
oed / switch.c/someprimitive_in_switch.s (.c suffix is for csg
combinations, .s is for solids aka primitives) |
22:59.19 |
brlcad |
the slash on the LHS is of course
significant |
22:59.43 |
rdenatale |
brlcad: indicating the root I guess |
22:59.50 |
dli |
brlcad, can I just move one .c instead of all
parts? |
23:01.04 |
brlcad |
dli: yes, you can do that by either creating a
named reference to the .c (which amounts to creating a group that
includes just that .c along with a matrix transform) or you apply
the matrix directly in the assembly where it's being used |
23:01.56 |
dli |
brlcad, thanks |
23:02.50 |
rdenatale |
brlcad: so I think I understand but I'm still
having trouble. I have to go fairly deep into that switch to get
to a primitive... |
23:05.19 |
rdenatale |
The shallowest primitive is in
switch.c/switch_nut_and_washer.c/washer.s ... |
23:08.57 |
rdenatale |
brlcad: thanks, I think you got me started. As
I said I've got another problem now, but my wife is pressing me to
prepare dinner, so I'll likely come back later. |
23:08.59 |
brlcad |
rdenatale: sort of, yes indicating a root ..
if you think of all paths sort of like filesystem paths where to
modify a *directory* in your root (e.g. etc), you have to specify a
file contained therein (e.g. /etc/passwd) .. and to |
23:09.21 |
brlcad |
if your paths are long, it might be easier to
use the gui for selection |
23:09.27 |
brlcad |
good luck with dinner :) |
23:10.39 |
brlcad |
dli: oh, third option is to copy that .c since
all copies are shallow when using cp |
23:11.59 |
dli |
brlcad, thanks |
23:13.31 |
Maloeran |
Hum, dinner. That reminds me I haven't eaten a
thing today yet |
23:14.08 |
brlcad |
(looking for capable developers) |
23:14.10 |
dli |
brlcad, no :( I am just a n00b user |
23:14.23 |
brlcad |
hey, nothing wrong with that ;) |
23:14.34 |
dli |
brlcad, I use qcad for 2d, and brlcad for
3d |
23:14.44 |
brlcad |
sweet |
23:15.30 |
brlcad |
feel free to shovel in the feedback or make
requests on the sf.net trackers .. they do get paid attention
to |
23:19.42 |
*** part/#brlcad lg_
(n=lg_@88.234.13.222) |