Slashdot Mirror


User: IrresponsibleUseOfFr

IrresponsibleUseOfFr's activity in the archive.

Stories
0
Comments
40
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 40

  1. Should be: Migrating an App the Worst Possible Way on Migrate Win32 C/C++ Applications to Linux · · Score: 4, Insightful

    Migrating a Win32 app the way they suggest is going to be painful and time consuming. In addition, there are numerous things that they don't mention, like associated performance costs: is creating a thread going to be more expensive or cheaper on Linux vs. Win32? Don't look to the article for the answer. It doesn't even mention the biggest parts like the graphics/windowing library.

    Secondly, it is making a wild assumption that your win32 app is written in a that is conducive to a Unix/Linux process model. Namely that you spawn processes and use environment variables as opposed to having a message loop and handlers (the way most windows apps are written).

    Third, if it was so straight forward to port a Win32 app, why not just write a library that maps the windows calls onto the equivalent Linux calls instead of manually changing all your source?

    Finally, why not look at a binary solution like Wine first and not touch your source at all?

    This is the worst way migrate app. The source works and manually mucking with it like this is a good way to break it and introduce all sorts of bugs. Look for a binary solution like Wine. Then look to see if somebody implemented a Win32 on Linux library next to recompile (like Cygwin in reverse). Then, the last choice is to factor out your platform specific portions of your code and replace them with OS neutral calls. But beware of the performance of your app, it will probably take a hit. But, hacking apart your app like this makes me cringe.

  2. Re:Creationist? on Creationist Textbook Stickers Declared Unconstitutional · · Score: 3, Insightful

    It is a "creationist textbook sticker" because Intelligent Design is just a secular telling of creationism. It supposes an intelligent creator which we have no scientific evidence for except circularly ourselves and our surroundings which is at best specious. Secondly, it has a huge flaw with "first cause" since everything must come from something more intelligent so supposedly "The Creator" was created from a more intelligent "Creator" and so forth. Third, it is wrong, because it is easy for us to concieve of cases where we muddle with our DNA to create more intelligent human beings (which I believe to be just a matter of time). This goes directly against the notion of intelligent design where beings can only create things less intelligent.

    Evolution is a theory, but there is lots of evidence supporting it. We've observed "micro-evolution." What we haven't observed is "macro-evolution" but I guarantee that we'll know it when we see it. There is of course a problem with "first cause" but we exist so it has to be resolvable.

    Evolution is a theory in the sense that relativity is a theory or the theory of an atom. We don't preface the theory of the atom with a sticker and we shouldn't do evolution either. Students should think critically about it, but evolution does not deserve any special doubt just because it happens to disagree with certain religious texts. But, what I'm really tired of is people trying to return us to the dark ages.

  3. Re:Stars on Ubisoft CEO Speaks out Against EA Move · · Score: 0

    This is only because you read too much slashdot :)

    On a personal level, I am disappointed that the NFL signed an exclusive agreement with EA. However, I think EA's business unit did a great job on this one. The NFL was willing to sign an exlusive agreement with someone. EA made sure it was them. If you are going to blame someone, blame the NFL. They set up the situation. Don't think that Midway, SEGA or Microsoft are "honorable" corporations that wouldn't snatch up an exclusive agreement if they had a chance. EA knows how important Madden is to their bottom line. The NFL practically blackmails EA into their position if they even utter the words "exclusive rights." EA paid the most, because they had the most to lose. End of story.

    As for treating their employees like shit. People are too quick to jump on the bandwagon without understanding what is going on. Basically, all problems result from a failure in process. EA uses iterative waterfall. If your design phase sucks. You pay the price all through the development cycle, and it all comes to a head about a month before the game goes gold. Yes, this is a failure in management.

    But, understand, people that run the studios were there at the beginning. They like to have their hands on things. The problem is that EA is growing up fast and people don't scale that well. These managers also tend to be work-a-holics and stingy because they are used to expenses when things were smaller.

    Yes it is a problem, but I believe they have gotten the message. In general, EA treats its employees well. It wasn't their intention to make one of the worst companies to work for, but a lot of it is just growing pains of any successful business.

    Now we come to Ubisoft. The CEO isn't happy that 20% of his company got gobbled up by another 3rd pary publisher. Big surprise. I believe EA did this because they see the video game market growing in the future. Ubisoft has some good franchises, and it is probabaly a wise business decision. The CEO of Ubisoft let too much stock out. He was greedy and even a person with a basic understanding of corporations knows if you don't control over 50% of the stock, you are susceptible to problems like this. Don't expect any sympathy from me when it actually happens. What is the the worst that can happen, well, him and his executive board gets kicked out and EA takes over. But, he gets to keep his golden parachute. Over 75,000 are dead in South-East Asia, over one thousand American soliders are dead in Iraq along with an untold number of Iraqis. Cry my a freaking river.

    As for customers, if you feel screwed by EA because you feel they make crappy games. Don't buy them. Is that so hard? There are little publishers like: Microsoft, Activision, Vivendi, LucasArts, Atari, Sega, Sony, Midway, Rockstar and Nintendo who I'm sure would be happy to sell you some of theirs.

  4. Random Thoughts on the Article on A Glimpse Into the World of Japanese Animation · · Score: 4, Insightful

    Well, first of all, I'd like to point out that the article isn't really about Japanese animation. It is about what people's attitudes are that work on Japanese animation, and how they are they perceive themselves as being different from Western animation.

    One thing to note about Japanese animation itself is that they try very hard to maintain the traditional style while using new tools. Anybody that has watched anime the last couple years will note the marked improvement of visual quality (especially of TV shows) over those made 7 years ago. Interestingly, the CG style (works like Toy Story, Monsters Inc., Shrek) are not as popular in Japan as the are in America. People on the Production I.G. seem to blame that on character design issues (hard to create a look for characters that they feel is compelling).

    Something that I wish would be incorporated in American animation is a wish that more of American animation said something about us. About who we are as a people, and how we view ourselves in the world. In short, say something about our culture. Production I.G. animators say they wish Japanese animation better reflected Japan. I share that wish only with respect to American animation relating to America.

    What is interesting is how this matches up with outsourcing. Animation is a work of art. If we export animation to India or Korea, how do expect the animation to reflect our culture? (Of course, it might speak loads about our culture, but not in a good way). This isn't a unique thought, I was watching "The Otherside of Outsourcing" and they talked about Indians learning computer animation. They commentator noted how he thought that it was important that Indians did something about their own culture and not just pieces for other countries. Just something I thought I'd tie in.

    The last suggestion for Western animation is to stop the "soft-biggotry of low expectations" towards our kids. Most CG films (like Shrek) are good at making a story that is reasonably complex and the characters seem real, with real conflicts and are not cardboard cut-outs. But, our TV shows really need some work. It might be because they are usually totally episodic, which curtails character development. But, I really think we need to show characters with depth and real conflict (emotional and otherwise). If we don't, we really aren't helping their development. So, in a sense, we are raising them quite literally on kiddie porn.

  5. Re:About inheritance and the API on Miguel de Icaza Debates Avalon with an Avalon Designer · · Score: 5, Insightful

    The average programmer doesn't care the the hierarchy is 10 or 11 levels deep (well at least until the next avalon release comes out). But Microsoft should care, and Ximian also cares. Very deep inheritance hierarchies are tough to maintain. Inheritance is a pretty intimate binding of two classes and changes higher up in the hierarchy sometimes have disasterous changes down the line. From a talk that I heard Stroustrup give, he doesn't care for them much either. (I didn't attend this one, but I imagine it is the same based on the slides.)

    In this day and age, the commonly accepted wisdom is that you break functionality into interfaces and you write shallow helper classes to degalate to for common implementations of those interfaces. (C# is quite possibly the best language there is for supporting this architecture.) This way you don't force the user to use implementations they don't want when they want to program to a particular interface in your system.

    If you look at the code for eclipse, you'll see a good example of this design in action.

  6. Re:OpenGL will win at the end. on OpenGL 2.0 Released · · Score: 1
    3D graphics is something that no sane developer would ever lock himself to a proprietary API like Direct3D.

    Then most of PC game industry must be insane. Except for Doom3, almost every commerical game uses DirectX. Of those that support OpenGL, they also usually support a DirectGraphics rendering pipe-line. But, you do realize that Doom3 has 3 different rendering backends using different OpenGL extensions. Doesn't it defeat the purpose of using the API if you have to write a different rendering backend for each card or chip line you want to support? I'll go one step further, I'll claim OpenGL + extensions (which you have to use to do cutting-edge real-time graphics rendering) is in fact more proprietary than using DirectGraphics.

    Using OpenGL has the additional benefit of porting a game to architectures other than Windows.

    Great!!!! That is why I see a Mac version of Doom3... no!? But surely a Linux version... no!? Gee... apparantly even if I write something in OpenGL I don't automatically get portability either. But, many DirectX games work fine under WINE. What was your point about portability again?

    Look, OpenGL has been a mess the last 5 years. SGI has had financial worries. Microsoft left the ARB. OpenGL has gotten better. OpenGL 2.0 is a step in the right direction but there still is a ways to go to catch up to DirectGraphics. ATI and nVidia still implement stupidly incompatible extensions while Apple is off doing their own thing with it. Then when the extension gets approved, it ends up looking like something that they are forced to implement for DirectGraphics anyway.

    I'm sorry, but display lists is not the way you want to get performance out of todays graphics cards. You want vertex buffer objects. Render to texture needs to fixed. But, that just catches OpenGL up to DirectGraphics. Where is the advantage of using OpenGL? You'd be hard pressed to name one once your face hits something named reality.

    Direct3D used to be a retarded API. But, Microsoft has drastically improved it. It is competitive with OpenGL in all areas and surpasses it in many others. I personally believe there will continue to be a place for OpenGL, but I don't see it ever returning to be the premiere real-time graphics API that it used to be.

  7. Re:I am also wondering how this got on Slashdot. on The Age of the Essay · · Score: 1
    There's no way you can tell me that these kinds of writing courses make writing boring.

    Writing is not a boring endeavor. Nor are classes about writing necessarily boring. As with most things, what turns the student off is the teacher(s). What prevents students from pursuing writing more often is not subject, but the people who stand in the way that discourage its exploration.

    Writing, at least in high-school, is artistic and subjective. Artistic in the sense that you can spend hours trying to improve your work and only end up with something inferior than your starting point. Beyond that, students are forced to write about certain subjects in certain formats and must be a certain length. Students sometimes have little to no interest in the subject. Deerslayer was boring enough to read, writing a three page essay about it was even more mind-numbing.

    I remember in the third-grade I wanted to write a story about werewolves. My teacher said that I should write about something that I knew. Somehow writing a story in which you have total control over subject, say because it was fictional, escaped her. There were many options open to her: encourage the student to look up what other people had to say about werewolves, made sure that I took notes and had a clear vision of the limits and abilities of werewolves were in my world. She chose the worst: make the student change the subject.

    I like to place English teachers into two categories: the p's and q's, and those that required divination. The p's and q's were utterly boring, but I got better grades. One only had to make sure that you had proper sentence structure, followed esoteric rules that they usually handed you on a sheet at the beginning of class, make sure you spelled everything correctly, and hit the word count/page count you needed to get a good grade. The ones that required divination were worse. I never felt like I learned much from them, and I never felt like I was necessarily a better writer at the end of the class than I was at the beginning. The teachers never gave you rules to follow, never gave advice on things that you could do to become a better writer, and grades always seemed completely arbitrary. The teachers that required divination also seemed to have very strange views of the world that didn't mesh well with reason. They saw many things as being related which would be best explained by conincidence. They loved symbolism which I always felt was a symptom of being delusional. As such, I felt no obligiation to indulge in their fantasies to the detriment of my grade.

    To be fair, I did have one good English teacher. It wasn't so much what he made me write, but how much he made me read. However, one teacher could not make up for the frustration I experienced. I also came to the conclusion that I became better at writing by taking history rather than English. Discussing the failures of reconstruction after the civil war held my attention better then trying to figure out a particularly cryptic or archaic poem.

    So, you ask for a reason. People, particularly in IT, leave the path of being a writer long before they meet the people that would show them that pursuing writing is worthwhile. People's lives are short. There are much better things to do than beat dead horses. There are more productive uses of time than pursue paths that you are told for 9 months out of the year you are bad at and cannot figure out how to improve. I'm glad that you enjoy writing, but understand that the experiences in your life are not what other people experience. So, no, those classes at San Diego State might not be boring. But, the reason they aren't is because of teachers. Truthfully, there aren't enough good teachers to go around.

  8. Re:Hmm on Top 25 Censored Media Stories of 2003-2004 · · Score: 2, Insightful

    While you might disagree with the word: "censored." I hope you agree that the media plays an important role in the USA precisely because we have a democracy. We need a properly informed public so that people have the ability to make good decisions about the direction this country takes. I will concede the fact that the USA has not been historically good at an unbiased media (see: Yellow Journalism). However, with the the proliferation of nuclear weapons, along with long-term energy and environmental concerns, decisions that we make today will have a dramatic impact on the world we will live in the future. Probably more so than at any previous time in history.

    These stories had merit and were definitely under-reported in the mainstream media. Inspite of the fact that they may be frightfully important. Instead, we end up with stories about two-legged dogs that can walk upright instead of discussing depleted uranium and its possible health implications. Americans should be outraged, but the sad fact is, the majority of people never find out. People don't get angry about things they never know about.

    To be fair, the issues are complicated, and many times there is a shock and awe effect with both sides throwing out so many statistics that it is hard to dechiper what the real story is. It is especially difficult when one-side or both is being disingenuous, which is frequently the case in politics.

    However, I would encourage you to not paint the entire world in terms of Democratic/Republican Left/Right, because it is an intellectual crutch and discourages you from properly considering the arguments presented. As soon as you paint something in that light, you are already biased. Bias has nothing to do with considering all arguments with equal weight. Some arguments are better than others (better reasoned, have more evidence supporting them, etc.) Even better cases are made by considering the other side of the argument and pointing out fallacies or showing that the evidence actually supports your conclusion. However, considering only one side of the issue, in and of itself is not bias (the article about the draft might be a good case of this). For example, if you are arguing for evolution it is not strictly necessary to consider Christian creationism. Bias is rejecting an argument due to factors outside of the argument itself. Such as, you don't like the conclusion because it means that you should change your lifestyle in some way (shouldn't smoke, use less gas, etc.). Fox News isn't necessarily biased, it just happens to be a very poor news channel. The problem comes from not Fox itself, but rather the viewers, since Fox tends to report things in ways that support their viewer's preconceived notions. For example, talking points are percieved as facts because they are repeated often and by different people. Viewers end up feeling like they are well informed when they actually aren't. These people who believe they are informed tend to be more dangerous than a person that holds a belief but knows that they are underinformed. They also take longer to straighten out.

    In conclusion, the USA needs a better news media. I see a lot of similarities between the Yellow Press and the media of today. We are the most powerful country in the world, possibly the most powerful country ever. With that comes a certain responsiblity. There are many different views on the direction this country should take in the future. From watching Bush's nomination speech, he seems to think we are ordained by God to bring democracy and freedom to the rest of the world. I personally don't believe we can deliver democracy to countries by invading them. We might, right now, be in the prelude to WWIII. I think it is important for the people to know exactly what we are doing, what we know, and what we are fighting for. We need the media to properly inform us. Here is a list of 25 stories that didn't make it but are important. The real question is: what can we do about it? But, at least it is a start. Knowing that there is a problem is the first step towards a solution.

  9. Re:Bad idea on Gosling: If I Designed a Window System Today... · · Score: 1

    Multithreading will be more important to this system than it is in X. Whether your multithreading is through threads or child processes doesn't matter. The original poster talked about closing, not minimizing. That was the issue I was addressing.

    However, I'm not totally convinced minmizing couldn't be handled through a clip-list manager app. But, you are correct, if the application is b0rked, you won't be able minimize it from "the window". However, I'm relatively sure equivalent ways of doing what you want to do can be accomplished - get this window off my screen... yesterday.

  10. Re:Bad idea on Gosling: If I Designed a Window System Today... · · Score: 2, Informative
    This concept kills the concept of thin clients and X terminals

    It doesn't kill the concept of thin clients. You render to a servers back-buffer, and transmit it over the network to the client. Then you proxy mouse and keyboard events to the window on the client to the server. It is non-trivial, but definitely possible. From the article:

    I think that a more viable solution in the long run would be to replace the X protocol with a very simple pixel copying protocol that uses the user-level rendering libraries in the application to render to a local image buffer, then copies the pixels over the net in something that looks vaguely like a video stream. There are a variety of compression hacks that make this surprisingly efficient

    So, no, this type of window system does not preclude thin clients, nor kills their concept. According to an actual study done by Sun, it is actually about as efficient as X and much easier to implement.

    Letting the app take care of its own window borders is a bad idea as well... once an app hangs, there is no way of closing or minimizing a window or simply of getting it out of the way.

    If your app doesn't respond to commands, you kill the process. I mean really, how often do you expect your applications to hang? I don't consider it an absolute requirement to be able to kill applications right from the window decorator. In fact, I will claim the opposite: it is a bad idea to have abortive closes so easily accessable from the UI. Make an app that matches up process id's to clip-lists and make them kill from there. I don't consider this complaint particularly damning.

    Look X11 is a baroque architecture. We know now what the architecture of machines look like now, and what is likely to change within the next 10 years. Gosling's proposal directly takes advantage of the way things are likely to change. X11 comes along kicking and screaming every step of the way. That said, Gosling's window system is just an idea on paper. X11 is alive and in the flesh. The only way this debate means anything is if someone goes out and implements Gosling's proposal. Then, things will get interesting. We will finally get to use some of the wisdom computer scientists have accumulated over the last 20 years since X was designed.

  11. Re:Prior art on Creative Pressures id Software With Patents · · Score: 2, Informative

    If people understood what this patent was about, they'd realize how stupid this is. Here is a short trip down computer graphics history.

    Shadows are an important visual effect for photorealism, which has been the goal of computer graphics for a very long time. But, shadows are computationally expensive. You have to answer the following question, is there something in the way between the part of the object that I know I can see and the light source. Which of course depends on other geometry in the scene. The most obvious was of answering the query is through a ray-trace. Draw a directed line from the point that you know you see, to the light source, is there something in the way? Yes, then this point is in shadow. Call this the shadow determination problem. Unfortunately, raytracing is rather slow.

    Franklin Crow wrote a paper for SIGGRAPH in 1977 called "Shadow Algorithms for Computer Graphics" which he describes the idea behind shadow volumes. Basically instead, of doing a raytrace, you create volumes that represent a space of shadow. Shadow determination becomes, is this point in a shadow volume? Yes, then this point is in shadow. In 1977, it wasn't clear why anyone would use the shadow volume method. Crow was just doing an academic survey of all methods you could use to do shadow determination.

    In comes the development of dedicated graphics hardware. Graphics hardware is generally made up of a number of buffers. A depth-buffer, color-buffer, and stencil-buffer being some examples. You only see the color-buffer. The stencil-buffer allows you to fill in some integer value for each pixel on the screen. And later render a scene based on some condition based on the value in the stencil buffer and possibly values in others, this is called the stencil-test. The stencil buffer is useful for a number of effects such a mirrors, or portals and the like.

    In 1991, Tim Heidmann wrote "Real shadows, real time" in Iris Universe in which he describes how the stencil buffer and stencil-test can be used to to implement the shadow volume test.

    Now, here is where it gets hella stupid. One of the problems you run into with shadow-volumes is that they have to be water-tight. Sometimes, the computer graphics hardware will clip the volume. That is, what you see in 3D scene actually exists in a six sided volume, called the view-volume. There is a near, far, left, right, top, and bottom plane to it. And geometry gets choped off if it happens to be on the wrong side of one of these planes planes. In the straight-foward implementation of the idea, the plane that ends up causing the most problems is the near plane. It tends to happen when the view point gets too close to a shadow volume. This causes incorrect shadow determination and suffice it to say, in interactive graphics, people will move their view point too close to shadow volumes. So dealing with shadow volumes getting clipped at the near plane is a problem that you have to deal with. The problem is really messy.

    However, Carmack popularized the idea of changing the stencil test a little bit. It moves the problematic plane from the near plane to the far plane. But, if the far plane clips the shadow volume, you still end up with incorrect results. It isn't obvious how this is much of an improvement, but it is. You generally have much more freedom on where you place the far plane than the near plane. The far plane can be basically anywhere after the near plane, the near plane has to be somewhere infront of the view point. In fact, it is possible to place the far plane infinitely far away and thus totally get rid of the clipping problem. Now, Heidmann made the suggestion in the orginial paper that you could flip the test around. Carmack just popularized the idea.

    In comes Creative Labs, 20 years hence. They didn't come up with anything. Just filed some paperwork. Not that Carmack's stencil-test flip is that earth-shattering either. I honestly believe that any smart person would come up

  12. Re:Interesting insights... on Paul Graham On 'Great Hackers' · · Score: 2, Insightful
    I wonder, how does one become a great hacker?

    How does one become great at anything else? 1 part talent, 9 parts determination.

    Another part of the question is: how do organizations support the development of "great hackers". The first part is to recognize that programming is a skill. There is only one proven method of developing skills in people, and that is mentoring. We do it for doctors. We do it for carpenters. We do it for all professions that depend on the workmanship and talent of one particular person, even if they are in a team setting. It is the only proven, time-tested way.

    That said, most companies don't want great hackers. They want coders. That is interchangable people who can write code to produce a product. Coders don't require originality. They require that you can implement features X, Y, Z in a product in a certain time-frame with a certain quality. I personally don't think that being a coder is a bad thing. Not everyone is very ambitious at their job. Frankly, they have better things to do. Spend time with the wife and kids. Go fishing. Whatever. A job is what they do, not who they are. I highly respect that point-of-view. The most important thing to realize if you are a coder is that you are a coder. You should work 9 to 5, 40 hour weeks in a nice environment for good pay. Don't let your job control your life.

    Great hackers are wired differently. Their priority is what they produce. Everything else is secondary. They are out to change the world and how it works with their art. But the reality of the matter is, they don't have as much of a life outside of their job. They don't get paid as well unless they are in a start-up that goes big. Their financial situation is naturally riskier. 9 to 5, 40 hours a week are not practical. While, we might idolize great hackers for the amazing things they are able to produce. For a good portion of the time, it actually sucks to be them. And success is by no means guaranteed.

    Most people fall in between these two extremes. Take into account your ambition and what you want to do with your life. Great hackers make huge sacrifices. You might find it to be more satisfying to just be a good coder.

    Organizations fall into extremes of how they support programmers also. But the best environment for programmers is that there needs to be a way for a person to work uninterrupted and quiet for as long as they need, and there should also be a place where programmers can mull about communially during breaks.

    Microsoft is actually a great place to work. They do attract some of the best coders and some great hackers. This is with respect to working for them, not their business practices.

    The worst organizations to work for are those that claim that they want great hackers, when all they really want is a bunch of coders. These organizations will appear to be run by PHB's. They use duplicity to build a better wage-slave. It is simple cost/benefit and trying to extract the maximum amount benefit out a person for the lowest cost. I honestly believe this has become the dominant thinking in American corporate culture. Partly, because it requires no skill, and why the US is losing its technological edge. It is very demoralizing to work for those companies too. No one believes implementing yet another payroll system is going to change the world. Or replacing an old mainframe system with some sort of EJB web interface. Businesses need this done. But it is done by coders, not great hackers.

    I think that this basically summarizes what Paul Graham said along with my own insights. I think Paul Graham plays a little bit fast an loose with definitions, which is why, what he says comes off as controversial. When, in fact, it isn't. He is stating well known facts, just not very well :)

  13. Re:Overview of Shading on OpenGL Shading Language · · Score: 2, Interesting

    Inefficencies: surface shader, you have to break it down to a vertex shader and pixel shader to make it map well on to modern hardware. Displacement shaders: you can't do it the same way using rasterization as you do with REYES. In fact, you can do displacement mapping using the surface shader if you are doing REYES. You need to separate it out if you are doing ray-tracing. This is just one way that the rendering system leaks into shading. Light shaders, there is no equivalent mapping to current hardware in the programmable pipeline. Atmosphere shaders: that part of the pipeline isn't open to programablility yet.

    Renderman is great if you are doing PhotoRealistic imagery. But, we need a slightly different language to do real-time graphics. RendermanSL just doesn't map well, making the underlying implementation too slow for real-time which was my point. I probably should have worded it differently.

    Cheers!

  14. Overview of Shading on OpenGL Shading Language · · Score: 5, Insightful

    Here is brief overview of shading, in case you don't know.

    Shading is the process by which a renderer assigns color values to pixels on the screen. There are currently three popular rendering methods: Rasterization, REYES, and Ray-tracing. Rasterization simply projects planar polygons onto a 2D plane and discreetizes them to pixels. REYES is slightly more complicated in that it takes mathmatically defined patches, slices and dices them into micro-polygons which are then rasterized. Ray-tracing point-samples the scene by tracing rays through it.

    Rasterization is the method of rendering that is implemented on your commodity graphics accelerator. It is commonly considered the most adept at handling real-time graphics. In the past, the type of shading that you could perform in real-time was rather limited. What people did was take a dial and switch approach to shading. Users would tell their graphics API (like OpenGL) what features they wanted to use and pass in parameters. That was basically it. Unfortunately, the more bells and whistles you add to the rendering pipeline, the more unweildly your graphics API becomes. This is because, users deal with the most shading algorithm possible, no matter how simple the task.

    Hence, the programmable pipeline is born. Instead, of adjusting dials and switches, you just write little procedures telling the renderer exactly what you want it to do at a certain stage of rendering pipeline. There is some history behind this approach coming from REYES renderer. Renderman is the shading language that tells Pixar's REYES renderer what to do. It is popular, and it is pretty standard in the graphics industry. People have even implemented Ray-tracers capable of using the same shaders that were used for the REYES renderer. But, in all this is pretty inefficent. Shaders are intimately tied to the rendering method that you are using. Therefore, a new shading language needed to be developed.

    In all, the shading languages will look like Renderman, which in turn looks like C. Real-time shading languages differ in their specifics. But, in rasterization there are two procedures you can write. A vertex shader which allows the procedure to manipulate points of your planar polygon in some fashion, and a fragment shader which is invoked after the discreetization to actually color the pixels. Cg and HLSL are actually the same shading language. OpenGL Shading language (glslang) is an alternative. Probably the biggest difference at this point is HLSL/Cg dictates a particular instruction set architecture on the hardware. GLslang doesn't, but it requires that your graphics driver has a compiler that compiles the shading language to something the graphics card can use.

    In all, I think the money is on HLSL/Cg to win. It has been out considerably longer, and I think it has already picked up developer mind-share. I also think that it makes things considerably easier for graphic driver writers although it might be more limiting. However, we probably won't feel the pains of it being limiting in the next 5 years, and by then the battle will be over.

    As for those that mention rendermonkey. Rendermonkey isn't a shading language, it is a suite of tools that help you produce shaders. It uses HLSL/Cg or a general graphics assembly language underneath. It is pretty independent of the whole shading language war.

    That said, this book might be good to pick up independent of the actual language that it discusses just because it goes over important issues that you face when writing these shaders.

  15. Re:optimistic, no? on Ballmer - Xbox 'Can Take Sony' In Next Generation · · Score: 1

    I completely agree. A console, first and foremost is a platform. Therefore, it has to appeal to developers, not just consumers. Microsoft was able to buy a lot of developers the first time around. They have taken huge losses as a result. But, the way things stand now, the X-Box is in good shape. Games that are released on all three consoles tend to look and play the best on the X-Box. Microsoft is also the first with a truly successful online gaming service. As long as the market remains: PS2, X-Box, Gamecube. I believe the X-Box will slowly chip away at the other two console's marketshare. People will eventually buy an X-Box along with their currently existing PS2 or Gamecube. If a game comes out on all three, which most do, people will pick up the X-Box version.

    However, the X-Box 2 is going to flop in a major way if it can't play X-Box games. There will not be enough games on the X-Box 2 to please the market. They are literally throwing away their whole entire investment in creating the X-Box platform by developing an incompatible X-Box 2. If that isn't bad enough, the money they spent on the X-Box will now compete with their new X-Box 2 for developers.

    The X-Box 2 needs to compliment the X-Box. It needs to do everything the X-Box did only better so the two platforms don't compete for developers and consumers. There is a couple things they could do graphically to silently improve existing X-Box titles (better texture-filtering/using npatches). But compatiblity is king. There is no way the X-Box 2 will be able to stand on it's own against the juggernaut that is the playstation game library.

    If they have licensing problems with nVidia, so be it. Pay what you have to make it work and mark it up to a learning experience. Then make sure it doesn't happen again.

    However, I doubt it will happen. Microsoft's leads are way too willing to throw away their hard won place in the market. Ballmer is a bean-counter without the vision to stop them. Instead, he'll just do his little monkey dance about how good the X-Box 2 is going to be. It is really sad, because the X-Box was a really good console. And Microsoft could continue to do cool things with the line. Too bad they are going to piss it away.

    For those needing evidence, I state that I will not buy a X-Box 2 if it is not X-Box compatible. I am in the X-Box's core demographic. I will buy a PS3 if it is compatible with PS2/PS1 games. I don't feel I'm alone. Microsoft is going to lose developers, and they are going to lose consumers like me, and that is why they are going to lose the next-generation console wars.

  16. Re:fav java 3d demos on Java3D Source Code Released · · Score: 1

    If you look at the process memory of a Java3D app, it will rise. Even with just a spinning cube without messing with the scene graph. It will be slow but it will be there. Regardless, in real applications you are going to change the structure of the scene graph. You are going to allocate new nodes and remove some nodes that will have to be garbage collected. Another poster noted you can tune the garbage collector so that it will be less obnoxious.

    Look, my original post assumed that the demos were written in Java3D. The animations drop frames. I think this is due to the garbage collector interfering with the rendering thread. However, I didn't write them, so I can't be sure. I do feel this is a fundamental problem with Java when doing real-time animation. You have a hard deadline. You have to render a scene in less than 1/60th of a second. The garbage collector adds some degree of non-determinism. You might render your scene in that amount of time, but sometimes the garbage collector can come in and interfere. This is annoying to the user of the application.

    In sum, the API does allocate some objects during a render. Two, these objects are deallocated in a non-deterministic manner that could interfere with your rendering thread. I also feel that it is unrealistic to expect all Java3D programs not to allocate objects during the rendering thread. What really needs to be there is a way help the VM figure out that it can deterministically deallocate those objects. Namely, some objects have a scoped life-time. This probably needs a source code annotation to do properly.

    If you still don't believe me. For the sake of argument, I'll assume that you use the OpenGL version of Java3D. If you have a windows box, try out the Direct3D version of Java3D. It is realistic that people have that one installed on their computer. And see how good your animations look.

  17. Re:fav java 3d demos on Java3D Source Code Released · · Score: 1

    Since your company is on the commitee, I'll take some time to bitch at you about JOGL :)

    First, JOGL mirrors the C API too closely. Things that are necessary in C become down right absurd in Java. For example, the gl prefix on everything. This is necessary in C because it doesn't have a concept of packaging. Copying the C api into Java directly makes it worse since you usually invoke it on an object making it gl.glEnable(GL.GL_DEPTH_TEST); Every single line you write that calls into JOGL takes about 15% more typing for something that isn't even necessary and interferes with auto-complete features like those in Eclipse.

    Secondly, the OpenGL suffixes are unnecessary (3f, 4d, 3i, etc.). C doesn't have function overloading. Java does. Java programmers think this is a good thing. Use it.

    Third, Java just added type-safe enums. Use them. The OpenGL interface is very type-unsafe. You end up passing in a lot of int flags. And there are lots of int flags with subtle different meanings. Although, JOGL has excellent error detection facilities, there is something to be said for prevention also.

    But those grips aside. JOGL really needs to ship as a standard part of the java platform. I mean, I have JOGL applets sitting on my website that no one in their right-mind is going to view. I can't automatically install the java classes that they need because they need native code on their platform to support it. And if you try to use Cg it is even worse. So, until a binding ships with a VM it is not done.

    Thanks for the info about Xith3D. I'll have to give it a more thorough look.

  18. Re:fav java 3d demos on Java3D Source Code Released · · Score: 1

    You are right, I'm not sure if the demos use Java3D or not (although, I will note only some of them say no Java3D plugin required, does that imply others do). I took it on faith from the parent post. But, the example apps have the same problem as many Java3D applications, the GC gets in the way of the rendering thread.

    I am relatively sure it is the GC. Even if you allocate a small number of small objects during your render loop. The fact of the matter, at 60fps, you are going to run out of memory very quickly. There is really no way to fix this, no matter how smart your garbage collector is. Either you don't allocate objects during your render loop, or the Java VM with the help of the compiler figures out all objects that you allocated in the render loop have a scoped life-time and can be deterministically free'd at certain points of the execution without needing the GC. I personally like the second idea. Although, some new programming constructs might be needed to support it, but it would make Java a lot more viable for real-time animation. Being slow really doesn't kill you in animation, it is being inconsistent that is jarring.

  19. Re:fav java 3d demos on Java3D Source Code Released · · Score: 4, Interesting

    The demos are really cool. But the biggest issue, which I think is apparent in the demos also, is that you get these frame rate drops. The best I can tell from playing around with Java3D, this happens because the API is allocating a bunch of objects during rendering. The garbage collector has to come by and get rid of them and it takes long enough to release the unused objects that it interferes with the rendering thread. This turns out to be down right distracting in animation.

    Whether or not Java3D can be fixed so that doesn't happen will have to be look into.

    The other issue is Java3D tries to hide the underlying graphics API too much. There is already a consistent 3D graphics interface that is available on almost every platform: OpenGL. I would really like to be able to get at it. Then, I could do things like add glslang shaders to an already existing Java3D app.

    All in all, I think open sourcing Java3D is a good thing. Sun and SGI announced at last year's SIGGRAPH that they were planning native OpenGL 1.5 bindings. I don't know what has come of that project. However, there are many Java to OpenGL binding projects. I still think that Java + OpenGL leaves much to be desired compared to C# + DirectX. Although, having a large higher-level 3D open-source library ready to use in Java might swing momentum in Java's favor.

  20. Re:return-of-a-classic dept? on Ghost in the Shell 2 in Theaters Late This Summer · · Score: 2, Informative

    Ummm... I hate to break it to you. But GITS:2 is not 2D animated. By the end of 2D animation, Eisner means the process of hand-drawing every single frame. Pen-ing, Ink-ing then transfering to film.

    I can safely say that 80% of the scenes in the trailer are definitely computer animated. The other 20% probably are also, but I couldn't say for sure.

    Eisner is right, the old way of doing 2D animation is dead. It is too pain-staking, and frankly we can get a computer to do a better job at a lot of the things a human used to have to do.

    If you mean that the 2D animation style is dead. Then you are wrong. And don't quote Eisner either since that isn't what he is talking about. He is talking about process. How much do we use computers in the process of making animation. Traditional 2D animation didn't use them at all. Today the answer is, we use them a lot, and they will be used more in the future. Hell, even South Park which is probably one of the most crudely animated series (it used to be done with construction paper) uses Maya.

    A lot of work has gone into making computer animation look like traditional cell animation. Studios can do a pretty good job now. I guess fooling people into thinking it was done the old way means that studios been fantasitically successful. I however find it ironic that you lament the passing of the old way of doing things, by pointing to something that was clearly made by new means.

  21. Re:Circularity to your argument on The RIAA Sues 482 More People · · Score: 2, Insightful
    It's illegal because it's illegal. Unless it's legal, in which case it IS justified, right? Right?

    Right and wrong have nothing to do with legal or illegal. You made the equivocation. Any reasonable concept of copyright would cover Britney and her most recent work. If you disagree then you disagree with copyright. I'm not going to argue with you, because I'm just wasting keystrokes.

    See, the thing is, this isn't about copyrights so much as it is about propping up an out-moded business model and maintaining a stranglehold on the music business. Look at the media landscape. Who is in control? Something like 5 companies?

    No, this is all about copyright. Yes, distribution costs have gone down because of the Internet. Media conglomerations are a result of high costs of distribution, look at how much it costs to run a TV/Radio station. Although, I will admit there were also some illegal mergers and cartel behavior. But none of this changes the fact that the RIAA doesn't want their stuff on Kazaa. Copyright gives them the right to prosecute people that do that. This is what they are doing. Nothing says you have to listen to stuff from the RIAA. Make your own music and release it. Computers are making it easier to produce quality recordings and edit them than ever. The Internet gives you limitless distribution models. The RIAA is missing out on this. You understand technology; you can take advantage of it. Just don't take their stuff and act like you own it then pass it out like government cheese. You don't. And you hurt other people that want to do perfectly legal things with their music. If prosecution is shut-off, what alternatives are there? Prevention and anti-circumvention? I like them suing people for actually infringing copyright better than the alternatives.

    Be careful wishing legal problems on others. You might be the recepient of some karma of the non-/. variety

    I'm not wishing legal problems on anyone. But, I support RIAA in this action. Since, I can't think of a better way to do it. How about this: come up with a way that you can stop someone from infringing your copyright? Let's say you are a porn site serving up a bunch of pictures/videos of me deep-throating (as you alluded to earlier), but in general me getting things crammed down my throat. Selling access to your site is how you make your living. Some bastard is handing out copies of your copyrighted work. You don't know who, but you know their IP. It might or might not be affecting the money that you are taking in, but it probably is in a negative way. How do you take care of this problem?

  22. Re:How long will this go on? on The RIAA Sues 482 More People · · Score: 4, Interesting

    Putting a share up on Kazaa is not fair-use. The RIAA is going after the big offenders. It doesn't make sense for them to go after the little guys. If the big-offender happens to be a tenny-bopper so be it.

    There is a legal recourse for copyright holders to pursue against infringers, this is it. I agree with you that that crippling devices is bad. It interferes with fair-use, just like Macrovision interferes with fair-use. But, if we close off prosecution what other path can copyright holders pursue? We need to prop up legal recourses. This needs to be the way the RIAA handles copyright infringers. This gives us leverage to save our devices.

    Copyright law does need to be changed for the public's benefit, but that is a side issue. And civil damages are insane, but that is also a side-issue.

    Look, the RIAA knows that their copyrights are being infringed in honest to goodness definitely not-fair-use ways. I believe them. I have every confidence that they can convice a congressmen. How much infringement actually takes place is up for debate. But, we need to support this legal action. They will not give up because they have money riding on this. And the alternatives are prevention and anti-circumvention. I'd rather deal with copyright in the courts than those other two (which I'm convinced are utterly evil).

  23. Re:How long will this go on? on The RIAA Sues 482 More People · · Score: 1

    No, I would consider that abolishing copyright altogether. That wouldn't be progressive, it would be radical, just like I wouldn't consider anarchy a progressive form of democracy. But, the line is fuzzy and you are free to your opinion.

  24. Re:How long will this go on? on The RIAA Sues 482 More People · · Score: 1, Insightful

    I support this action. Some people are not going to stop infringing copyright until it actually affects their lives in a negative fashion.

    ISP's are not just going to hand the information over to the RIAA. Which I agree, they shouldn't do. So the RIAA takes the case to court, a judge decides if their is reasonable evidence to proceed with the case, forces the ISP to hand over their records. RIAA finds out who they are actually suing. I think this exactly how it should work.

    Look, the suing your customer's is a facade. You aren't bitching about Best Buy throwing your ass in jail because they caught you red-handed trying to lift a TV from them just because you bought some Mountain Dew when you were scoping out the joint. This is no different.

    Copyright is copyright. Yes, it is f'd up right now. Yes, it lasts way too long. Yes, a lot of the music is crap. All this is beside the point. Illegally copying the newest Britney Spear's CD isn't justified. Even under the most progressive copyright schemes, that would still be illegal. This is the act that these people are accused of doing. This is what the RIAA is trying to nail these people to the wall for. And I hope that they are extremely successful, since this could make them lose steam over trying to shove some crippled devices and broken CD's down consumer throats. They should be doing this, I find the other bastard technologies way more intrusive, especially for those that respect the law.

  25. Re:I always wanted to get Minix .. on Minix from Scratch Project Established · · Score: 5, Interesting

    Well, now you can download it for free.

    Minix

    If you don't like the licensing terms, then choose Linux. Since that was like kinda of the whole point.

    Linux is a lot of code. But, LOC isn't the most valuable measure of complexity. Although, it can be overwhelming at first. A lot of Linux code won't be of much interest since it will deal with archaic devices and such. But, Linux as an overall system is well-organized. Which will mean as a hobbiest, after you find the parts of system you want to play around with, it should be easy to modify.

    The only real part that will screw you is the fact that as a monolithic kernel, if what you modify has a bug, it can potentially affect every part of the system (but usually it isn't so bad). And, this is usually no worse than any C-type coding unless you are playing around with the file-system.

    More on-topic, I don't see any reason why you'd want to rewrite Minix. There is always this type of bully-ing going on. It doesn't mean that 3rd parties should run off like a bunch of chicken littles. Plus there are other projects like xBSD's or Linux that are not necessarily easy to contribute to, but nevertheless you will affect a lot more people and gain their accolades if successful. Meh, I guess it is their time to waste and there are certainly other less productive things they could be doing.