Forum: Poser - OFFICIAL


Subject: OT Which Programming Language is 3D Apps wrote in ?

RorrKonn opened this issue on Feb 03, 2009 · 58 posts


RorrKonn posted Tue, 03 February 2009 at 4:42 AM

 

 

Anybody know which Programming Language Poser or DAZ Studio was wrote in ?

 

My Which Programming Language that 3D App was wrote in :) I am attempting to answer

 

DAZ Studio _ ???

Poser _ ???

 

TrueSpace _ ???

Blender _ C Render Engine C++

 

Lightwave _ ???

Max _ ???

Maya _ ???

XSI _ ???

C4D _ ???

Modo _ ???

 

C4D is extremely stable so be good to know which Programming Language it was wrote in. 

 

Anybody got links to a good Programming Forms ?

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


nightfall posted Tue, 03 February 2009 at 5:54 AM

C/C++ for all of them.


David.J.Harmon posted Tue, 03 February 2009 at 8:17 AM

their is lots of langs out their but C/C++ is the heart of them.

David J Harmon
davidjharmon.com


spedler posted Tue, 03 February 2009 at 8:46 AM

C4D is written in C++.

Steve


ockham posted Tue, 03 February 2009 at 9:32 AM

Stability is mainly determined by the skill of the programmers and
the integrity of the code.  A program written and maintained "all at once",
by one person or a steady team, is more likely to be stable than a mix
of original code + purchased modules like Poser.

My python page
My ShareCG freebies


Anthanasius posted Tue, 03 February 2009 at 2:47 PM

A long time ago a little software was written in Basic on a amiga 1200 with blitz basic, it was a clone of Imagine 4 ... But never compiled, i've never more than 2 Mo of ram on this computer ...

Génération mobiles Le Forum / Le Site

 


Winterclaw posted Tue, 03 February 2009 at 3:38 PM

I wouldn't be surprised if QT was used alongside C++...

WARK!

Thus Spoketh Winterclaw: a blog about a Winterclaw who speaks from time to time.

 

(using Poser Pro 2014 SR3, on 64 bit Win 7, poser units are inches.)


nruddock posted Tue, 03 February 2009 at 3:38 PM

Wings3D is written in Erlang.


svdl posted Tue, 03 February 2009 at 4:41 PM

C/C++ for just about all of them. Until recently it was the only programming language that could give you good 3D graphics performance.
Since a year or two there's a good and fast OpenGL library for Java, and the .NET environment opens up DirectX to all .NET languages, not just C++.  Completely new developments are no longer tied to C/C++, but existing applications most probably will not be rewritten in another language.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


svdl posted Tue, 03 February 2009 at 4:43 PM

Good programming forum: I like Experts Exchange. Most of the programming section is about building business apps however, there's not all that much about 3D.
For graphics programming - ehm, I just don't know. You might have a look around at the nVidia site, maybe there's some links in the forums.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


spedler posted Tue, 03 February 2009 at 5:15 PM

Attached Link: http://forums.cgsociety.org/forumdisplay.php?f=109

> Quote - For graphics programming - ehm, I just don't know. You might have a look around at the nVidia site, maybe there's some links in the forums.

There's a forum over at CG Talk devoted to graphics programming (see link).

Steve


odf posted Wed, 04 February 2009 at 2:36 AM

Quote - I wouldn't be surprised if QT was used alongside C++...

Quite relevant point. The GUI framework - such as Qt - and graphics library used are at least as important as the programming language.

-- I'm not mad at you, just Westphalian.


RorrKonn posted Wed, 04 February 2009 at 4:38 AM

Thanks for all the info

 

I know if it was not for the Poser,trueSpace,C4D, Communities I would have never made it in 3D.

 

There are probably a million 3D Artist to just 100 3D Coders.

probably why I can not find a Coding 3D Communities

CGTalk Coding form seems like a ghost town.

 

There are several Game Coding Communities out there,in alot of defrent Coding lanagages.

Guess ya could leanr to code buy making games ?

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


stewer posted Wed, 04 February 2009 at 5:18 AM

Poser is written mostly in C++, a few parts in plain C. Hardware shading is done using Cg, scripting language is embedded Python and the UI framework is wxWidgets. It also uses a little Objective-C/Cocoa here and there on the Mac.


ghonma posted Wed, 04 February 2009 at 6:25 AM

Quote - There are probably a million 3D Artist to just 100 3D Coders.
probably why I can not find a Coding 3D Communities
CGTalk Coding form seems like a ghost town.

What kind of coding are you looking to do ? A custom app of your own ? Plugins/scripting for various apps ? For the first, try blender forums, those are very friendly and open about what all you need to learn and the theory behind it. And of course the blender source will really help if you want to see how particular tools/features are put together. For the second, your best bet is the code sections of various app forums. Also renderers often have their own forums if you're interested in coding shaders.

You will also need to buy some good books on CG math and algorithms. Bookmark wolfram mathworld too.

Quote - Hardware shading is done using Cg

That's really interesting. Any plans to allow custom Cg shaders in the future (if you're allowed to say of course) ?


stewer posted Wed, 04 February 2009 at 6:44 AM

Sorry, I can't comment on future features.


RorrKonn posted Wed, 04 February 2009 at 7:08 AM

Quote -

What kind of coding are you looking to do ? A custom app of your own ? Plugins/scripting for various apps ? For the first, try blender forums, those are very friendly and open about what all you need to learn and the theory behind it. And of course the blender source will really help if you want to see how particular tools/features are put together. For the second, your best bet is the code sections of various app forums. Also renderers often have their own forums if you're interested in coding shaders.

You will also need to buy some good books on CG math and algorithms. Bookmark wolfram mathworld too.

 

A Decade+ of 3Ding all I have learned is...

 

Main 3D app like Lightwave C4D ect

If you do not have a crew of 3D Artist.

or 240 hours in a day, your not getting any where.

 

Poser, DAZ Studio Dependent of main 3D App's.

 

3D is for 3D Crews.

A 3D App made for a solo 3D Artist would be helpful.

oh and a human that bent like a human would be nice to.

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


svdl posted Wed, 04 February 2009 at 11:42 AM

If you want to build a 3D app yourself, OGRE is very much worth looking at.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


WandW posted Wed, 04 February 2009 at 12:33 PM

Quote - Poser is written mostly in C++, a few parts in plain C. Hardware shading is done using Cg, scripting language is embedded Python and the UI framework is wxWidgets. It also uses a little Objective-C/Cocoa here and there on the Mac.

Wow-no technical reason at all not to have a native Linux version!

Cheers,

Rod

----------------------------------------------------------------------------------------

The Wisdom of bagginsbill:

"Oh - the manual says that? I have never read the manual - this must be why."
“I could buy better software, but then I'd have to be an artist and what's the point of that?"
"The [R'osity Forum Search] 'Default' label should actually say 'Don't Find What I'm Looking For'".
bagginsbill's Free Stuff... https://web.archive.org/web/20201010171535/https://sites.google.com/site/bagginsbill/Home

RorrKonn posted Thu, 05 February 2009 at 3:13 AM

stewer

 

I know 3D

if some one asked me how long will it take me to learn C4D tools  so I can model,map,texture,rig,lighting,rendering.would it take ?

 I would say 4 years give or take a year and very few can do all of it most specialize in a few parts like modeling mapping or lighting and rendering.

 

if they ask how long would it take to make every thing from scratch just me buy myself to make a 3D movie = to matrix,Pirates ect ect would it take I would tell them 100 years give or take 25 years.

 

 

I do not know coding

So how long will it take to learn a language ?

How many language do I need to learn ?

How long would it take one person buy them self's to code Poser ?

How long would it take one person buy them self's to code C4D ?

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


Anthanasius posted Thu, 05 February 2009 at 3:58 AM

Quote - Poser is written mostly in C++, a few parts in plain C. Hardware shading is done using Cg, scripting language is embedded Python and the UI framework is wxWidgets. It also uses a little Objective-C/Cocoa here and there on the Mac.


Oh dear, i think poser was written in Swiss*** :biggrin:

Génération mobiles Le Forum / Le Site

 


bantha posted Thu, 05 February 2009 at 4:02 AM

I cannot say how long you would need to learn to code. But if you want to see how long it would need to write your own Poser or C4D, well - take a look at Silo 3d. It's done by two people full time. Download the software have a look.

Silo 1.0 was released 2004, I have no idea how long they were writing on this. But the changes for 2.0 took years for two programmers. That's just the modeler.

Packages like Poser and Cinema 4D include a renderer too. A rigging system. Scripting. See how long DAZ needed to create Studio.

You may learn coding and try to expand existing software like Blender. But I think to create a package like Poser you would take years, and decades for a full blown package like Cinema.


A ship in port is safe; but that is not what ships are built for.
Sail out to sea and do new things.
-"Amazing Grace" Hopper

Avatar image of me done by Chidori


ghonma posted Thu, 05 February 2009 at 4:36 AM

Agreed... obvi. you aren't gonna do a C4D or even a poser all by yourself. Heck even the poser guys licensed a lot of their tools from 3rd parties. But that doesn't mean you can't do cool little apps that rock at some feature. This is exactly how apps like ZBrush, 3DCoat, Silo, VRay etc got started. And after it becomes popular, then you find some investors (or con your family/friends) and get a team together to improve and expand the tool. Soon you've got a bunch of customers and are rolling in money. Well ok, you probably aren't, but you can certainly make a healthy profit while doing something you enjoy. With a bit of luck, after a few versions you catch the all seeing eye of Autodesk and they buy you out for a bajillion dollars. Now you can retire to a private island and fill it with real basketball boobie chicks :D

As for how long it takes, i'll say this again, more then a language, you need to learn math. Languages are easy, anyone with half a brain can learn C/C++ in 6 months. Sure, you wont be a master but you can learn enough to make whatever programs you need to. The hard part is having a good understanding of vectors, matrices, geometry, trigonometry, a bit of calculus and how to use numerical methods. You will also need excellent management and organization skills, because 3d apps are a nightmare of complexity. If you can become/are good at these, then you can make 3d stuff pretty fast.


RorrKonn posted Thu, 05 February 2009 at 6:02 AM

Ya I really do wonder if I am smart enough for this my self.

 

oh I am not planning on re coding app's like LW,C4D,XSI ect ect.

or coding there plugs like vRay ,Poser, zBrush ect ect.

But a polygon reduction tool in Poser would be kool.

 

All I want to do is make movies fast, easy and affordable.

So thought I would see if I could code a 3D / Game hybrid app that makes movies and burns it to DVD's.

Might be a insane idea but then again sanity never been in my vocabulary.

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


ghonma posted Thu, 05 February 2009 at 7:46 AM

You already use C4D right ? Does that allow you to use Cg or HLSL shaders in rendering ? Cause if it does then you can use something like mentalmill:

Mental Mill

That will let you make realtime/game shaders using nodes like you do in the material room. Once you like the result you come up with, you can then export it as a Cg or HLSL shader and load it into anything that supports such shaders. This way you can render using your GPU as fast as it can display stuff.

This is also why i asked stewer if poser would support custom Cg shaders in the future, because if so, you would be able to do the same thing in poser also.


stewer posted Thu, 05 February 2009 at 9:32 AM

Quote - But a polygon reduction tool in Poser would be kool.

If writing extensions for Poser is on your wishlist, I'd definitely suggest looking at Python. Even beyond Poser, Python is gaining in popularity: Blender has native support for it, Maya and XSI added it recently, and just this week I saw a plugin for C4D that allows Python scripts and NewTek announced that their next generation Lightwave will support Python.


wolf359 posted Thu, 05 February 2009 at 11:54 AM

Quote -  

All I want to do is make movies fast, easy and affordable.

So thought I would see if I could code a 3D / Game hybrid app that makes movies and burns it to DVD's.

Might be a insane idea but then again sanity never been in my vocabulary.

If  you really want to make your own 3D movie LEARN TO COMPOSITE!!
too many aspiring amature 3D filmmakers get discouraged when they realize they are facing Decades  of render time
because they pack their 3D  with everything and try to render the animations.

mind you you will still need help with the voice acting
but there are still many single man production being done with apps like blender,whic comes with a very viable game engine

it is possible.

cheers



My website

YouTube Channel



RorrKonn posted Thu, 05 February 2009 at 4:23 PM

oh no, no render times I can not afford a render farm so real time renders.like games.

TrueSpace ,iClone has real time Renders also.

 

I have a older visions of Poser 5 ,Lightwave 7 & Basic C4D , zBrush 2.

zBrush micro displacement maps in C4D looks killer.

Now we need the same look in real time renders :)

 

Mental Mill & Python sounds cool.

I would like for any body that wanted to write plugs for my app to use any code language they wanted.

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


svdl posted Thu, 05 February 2009 at 6:07 PM

Again, for the rendering engine, look at Ogre.
First of all, it's open source and free.
Second, you can use it in C++, C# (if you prefer a .NET programming environment), and it's easy to hook Python into Ogre - PyOgre is the library for that - also free. If you use plain C++, the application is portable between Windows, Mac and Linux, with only a very tiny amount of platform specific code.

And - Ogre is a GAME rendering engine - it's designed for realtime. You can hook it up to OpenGL and DirectX (that's just a config file entry, so even the end users of your app have the choice between OpenGL and DirectX).
Physics and audio are supported. User interface widgets are supported. Converters for models are supplied, including a .OBJ comverter.

All of this is freely downloadable.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


RorrKonn posted Fri, 06 February 2009 at 6:42 AM

I read every line you all right,only comprehend 2% of it but I read it.

http://www.ogre3d.org/ & http://www.speedtree.com/ Looks killer.

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


odf posted Fri, 06 February 2009 at 6:59 AM

I second the suggestion to learn Python as your first language. It's easy to learn and use and - as Stewer pointed out - supported by many 3d applications. If later on you decide you want to write your own hardware drivers or squeeze the last bit of performance out of your machine, it's still soon enough to learn C/C++.

Also, once you've wrapped your head around the basic concepts of programming, learning a second and third language will become increasingly easier. I've started out with Pascal, then moved on to C, later Python, then Java and now Scala. Not to forget Ruby, which I haven't done any 3d stuff in but which currently pays my rent. 😉

-- I'm not mad at you, just Westphalian.


onnetz posted Fri, 06 February 2009 at 12:19 PM

This is a good site for opengl......
http://nehe.gamedev.net/

Handle every stressful situation like a dog.

If you can't eat it or play with it,

just pee on it and walk away. :-)

....................................................

I wouldnt have to manage my anger

if people would manage their stupidity......

 


RorrKonn posted Fri, 06 February 2009 at 3:11 PM

ah, I got " Microsoft Visual C++ 2008 Express Edition " they said if I learn C++ it would be easy to learn another.

Thou I am not sure how many languages I need to learn, I know I half to know C++ , OpenGL.

I think Python, DirectX, OGRE and a few others would be a good idea to learn but not a absolute half to know.

but I am a clueless newbie so what I think changes from hour to hour.

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


svdl posted Fri, 06 February 2009 at 3:26 PM

OGRE is not a programming language in and of itself. It is an extensive set of objects and functions, written in C++, that you can use from C++. So you don't have to learn an extra "language", but you do have to learn what all those objects and functions are and how they work together.
As for DirectX and OpenGL: if you use OGRE, you don't have to learn those libraries by yourself, since OGRE willl do the work for you.
HLSL however (a "shader language") is very useful to know. It is the "language" in which to define hardware shaders. You can feed the HLSL code to OGRE, which will turn it over to OpenGL, which in turn will compile it for use on the graphics processor. As a programmer you only have to write the HLSL and give it to the correct OGRE object, the rest is automatically taken care of.
HLSL is quite capable. You can do everything that Poser can in its production shaders, and more (parallax mapping, normal mapping, it's all possible).

C++ is considered a difficult programming language. The main reason is that you have to program a lot of memory management yourself, and it's pretty easy to forget about releasing memory you claimed (which results in a so-called "memory leak"). You'll also need a quite thorough understanding of how computer hardware actually works, more than with other languages such as Java.

If you want to learn more about C++ programming, I recommend the book "C++ How to program" by Deitel & Deitel. It starts at absolute beginners level, and it'll get you to intermediate level, with lots and lots of sample code that illustrates lots of important programming concepts. There's a good chance that you can find it in an academic library, and any academic bookstore will carry it. Also available at Amazon.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


bagginsbill posted Fri, 06 February 2009 at 3:40 PM

Don't confuse languages with protocols, interfaces, component libraries, frameworks or application programming interfaces (APIs). You listed OpenGL, DirectX and OGRE in the same paragraph with Python and C++. Those first three are not languages, although they are things you would want to learn.

I write software for a living. I've used 15 languages professionally in large projects, and maybe a dozen more for self-amusement. I can tell you that if you knew all 15, you'd still not be able to write a serious 3D application by yourself. In computer science classes, we don't just cover languages. There are important algorithms and data structures that are crucial to being able to write software larger than little toys or examples or demonstrations. I'm talking about basic ones, that have nothing to do with 3D per se.

Then, as you've listed, you have to learn the ropes on the important 3D APIs. Without the head start that these provide, you'd be starting back in 1968 and figuring out how to draw lines at all angles using dots, first in 2D then in 3D.

I'm not trying to discourage you but you're making a rather large list of things to tackle with a rather ambitious goal, with the assumption that all this can be self-taught.

I paid MIT $66,000 (1978-1982) to train me to write great software for a living. MIT failed to do that, but it did provide the basic groundwork, enough that over the first 3 years on the job, I finally learned how to do the job. But I wasn't really great at it until I was 30.

Sure, anybody can teach themselves to write a program that spits out simple stuff, like a series of integers and their first 5 powers. And someone highly motivated and dedicated (wants to learn, has the time to learn, puts in the time) can train themselves to write moderately complex software. But 3D software is more than moderately complex. It involves not just the general algorithms and data structures taught in computer science programs, but also all the domain specific algorithms and data structures peculiar to 3D modeling, an intimate knowledge of vector arithmetic, the physics of movement and rotation, the physics of light, the interaction of light and materials, etc. Then on top of all that, you have to be a genius at UI design in order to cram 1500 functions into some sort of comprehensible user interface.

It takes 10,000 hours to become an expert at anything. To do 3-D graphics, you need to be expert in math, software (languages, algorithms, data structures), 3D API's, and GUI design. That's 40,000 hours to be expert.  (20 years of a full-time job)

Maybe 10,000 hours to be competent enough to make something that somebody would actually want to buy. (5 years of a full-time job)

Stop talking, start reading and writing and experimenting.

Write a program that draws a circle in OpenGL. Then make it rotate. Replace the circle with a prop, loaded from an OBJ file. Make the mouse rotate the prop. Make a mouse handler that tells you which vertex the mouse is nearest when you click on it. That should take about 200 hours for a beginner, assuming you know at least Python. You will still have a long way to go, but if you're not cut out for it, you'll know because you're sick of it after 200 hours and all you've got is this stupid little box that rotates.

If, however, at the end of that, you are energized to learn more, then go for it. I suggest, however, that you really want to go to computer science classes.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


svdl posted Fri, 06 February 2009 at 4:31 PM

In my previous job I taught a semester course in 3D game programming at a polytechnical in the Netherlands. Before entering the course, the students all had at least 2 years of experience in Java programming, 3D modeling and texturing and UI design.
After half a year, about 25% of the students was capable of building a very basic 3D game in C++ with Ogre. ODE (a physics engine library) was too complicated for most of the students.

Which illustrates that programming 3D applications is quite complicated. stewer might have a good point: learn Python and the PoserPython librrary and start writing handy little utilities for Poser. If you are cut out for programming, you can have your first utility worth distributing in 100-150 hours.

I just remembered Xith. That's a Java wrapper around OpenGL - good performance, and a far easier API than OpenGL itself. The Java programming language is also easier to learn than C++. And if you want to switch to C++ after a couple of years, you can use almost all your Java knowledge directly.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


RorrKonn posted Sat, 07 February 2009 at 12:56 AM

Of all the forms on the inter net, Poser form is the best for any subject.

You all are killer, Thanks a lot for the help.

 

1998 I got my very first PC, first time I had been around a PC ever. could not read very well at all, guess you can still see I do not right all that great.

TrueSpace community put up with some extremely poorly written emails asking for help they had to re right the emails still !/2 way guess at what I was asking. I would ask such things as where is the on off switch to the PC.

Just did not have a clue about any thing.

 

Thou my English still suxs I can read and right good enough now to communicate with others and I can 3D.

Not saying I am smart but I am stubborn to no end and if I want to get some where I refuse to give up till I get there.

 

I am pushing 50 years old not sure I got another 20 years left.

I do not want to re write 3D app's like Lightwave,C4D.

Thou I think there killer app's I think there for Hollywood with $$$ & 3D crews and not very helpful for solo 3D Artist on a Micky D's budget.

I just want to make a real time animation app for solo Artist.

 

Very few code 3D App's but seems like a lot of people make 3D Games.

Microsoft has XNA Game studio express & The Game Creators GDK

Then there is Dark Basic.thou I know nothing about these app's.

I know there are real time game engines mmorpg, half life

and app's like speed tree.

 

so I would not half to right a render engine.

Just fix is so they would work in my app like vRay works in a lot of app's.

What language would you use to get mmorpg , Half Life in your app ?

 

maybe right a polygon reduction tool for Poser so you export poser charters to my animation app.

what language would you right a polygon reduction app in ?

 

I wish I could tie all the app & games out there together cause every thing for a real time animation app's is all ready out there it is just scattered across deferent app's.

 

I have no $$$ or time for schooling.

I am still trying to get my head wrapped around what coding and stuff is.

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


odf posted Sat, 07 February 2009 at 1:23 AM

Quote - maybe right a polygon reduction tool for Poser so you export poser charters to my animation app.

what language would you right a polygon reduction app in ?

 

Python

Well, personally I would actually write it in Scala, but Python is easy to learn, has numpy/numeric/whateveritscalledthesedays for doing all the fancy matrix stuff you need for 3d programming, and you can use it from within Poser or, if you prefer, Blender.

That said, polygon reduction is not exactly the first thing I'd try to implement if I was new to both coding and 3d mesh algorithms. I'd suggest you'd start with something simpler for practice: find all the polygons with more than four faces and split them into quads and triangles. When you can do that, Google for "Catmull-Clark" and implement a SubD step. When that works, start to think about polygon reduction.
 

-- I'm not mad at you, just Westphalian.


svdl posted Sat, 07 February 2009 at 7:19 AM

Quote - What language would you write a polygon reduction app in?

Since the goal is exporting Poser characters at lower polygon counts, I'd write it in Python and run it from within Poser itself (something like an "reduce scene" Python script).
Why PoserPython? First of all, it's easy to access all the meshes and vertices from within PoserPython. Second, once you've performed the math on the geometry, it's fairly easy to create the actual meshes from the arrays of vertices and polygons that are the result of your caclulations, and exporting the resulting geometry as .OBJ is also quite easy.

A good polygon reduction algorithm, well, that's the rub. I haven't encountered a good one yet. I've tried the ones in 3D Studio Max, and they make a real mess of the mesh.

But when it comes to animation, there's probably a better solution than polygon reduction. What do you want when animating? You want a responsive user interface, so that you can easily change keyframes, even when the scene is already pretty loaded. You don't need sub-millimeter precision, Fast collision detection would be a major plus. And you want to be able to render the animation before you die of old age.

If your goal is being able to make animations, it might be a good idea to make a list of what's preventing you from making them using the applications and tools you already have. Then tackle the items on that list one by one.
You'll find that some of the issues on that list require programming of some sort, but not all of them. Some utilities could be implemented as Python scripts within Poser, others would require an external application.

As for fast rendering, you might want to look up Gelato on the nVidia site. Gelato is a render engine that uses the graphics card for the actual rendering (only nVidia 8xxx or higher though), which is a VERY good idea. Graphics chips are specialized in rendering, and can do it far, far faster than any CPU.

I'd think that a utility that could read in a complete Poser .pz3, including animation, and render it using Gelato, would be a great tool. I see two major challenges in writing that tool: 1) using the information in a .pz3 file to deform the mesh as needed (how are bones and magnets and falloff zones implementend in Poser? You'll need to recreate those algorithms for that utility) and 2) recreating the shaders and lights (easier, since Poser uses Cg for the shaders, and Gelato will accept Cg defined shaders).
If I were to write this utilty, I'd probably use PoserPython to read the current state of the geometry from within Poser itself - that way I wouldn't have to worry about how magnets and bones influence deformations. I'd use a mix of Python and standalone C++ to write an API around Gelato that can be called from PoserPython.
I could do the same using OGRE instead of Gelato.

Another great utility: Poser has animation tools, but they're fairly primitive. If you can use PoserPython to write a better set of animation tools that work within Poser itself.... quite a lot of animators would be highly interested in such a utility.

And a simple utility, but of great use to animators and still scene creators alike: a "drop to underlying surface" script. Relatively simple, can be made entirely within PoserPython, and it would be a good first real project to get a feel for 3D math and algorithms.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


ghonma posted Sat, 07 February 2009 at 8:04 AM

Quote - A good polygon reduction algorithm, well, that's the rub. I haven't encountered a good one yet. I've tried the ones in 3D Studio Max, and they make a real mess of the mesh.

The best one i'v seen is the one in XSI, eg this is V4 before and after running it (60k vs 15k polys)

A cheap standalone tool / script that comes close to this (or is better) it would be very interesting to a lot of people IMO.


svdl posted Sat, 07 February 2009 at 8:16 AM

That's pretty good! Now if you subdivide the reduced poly version one step, would you get close to the original V4 again?

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


ghonma posted Sat, 07 February 2009 at 8:53 AM

This is how it looks... The reduction has messed up some areas of the mesh like around the breasts and there are artifacts in some places, but the topo is quite close. Normally I would fix some of that by hand before making it a subd. And of course extract a displacement/normal map from the original to make up for any loss of detail/volume.

(L to R, original, reduced, subdivided once)


odf posted Sat, 07 February 2009 at 9:14 AM

Or, one could just cheat and try a reverse SubD step on V4, which gives you this. :biggrin:

Looks like the modeler DAZ hired didn't like to work on a 60k poly figure directly any more than I would.

-- I'm not mad at you, just Westphalian.


ghonma posted Sat, 07 February 2009 at 9:42 AM

True enough, and its even more proof that poser would benefit a lot from proper CC subds.


odf posted Sat, 07 February 2009 at 10:02 AM

Now I can't help but wonder how far one would get with reverse Catmull-Clark on more general meshes. You know, if a mesh has mostly quads and few poles, then most of its topology looks like the result of a subD step anyway. The few bits where it isn't shouldn't be too hard to deal with. The trickier part of course is then to determine the vertex positions of the reduced mesh so that after applying subD, the result comes as close as possible to the original.

-- I'm not mad at you, just Westphalian.


RorrKonn posted Sun, 08 February 2009 at 5:46 AM

Dang I wish I was a lot better at explaining things, With out righting a book.

Lets just say I want a 3D app that does not exist yet.

I have a concept in my mind of what I want a 3D / Game like animation app to be.

Since I know very little about coding I don't know even where to start.

so I am trying to find the ' Start here " and is it " doable time wise "

 

So lets start simple lets say we are going to make a 3D / Game like animation app that makes videos of a 3D space craft
flying threw a solar system that has 1 sun 2 planets and the space can fly around that solar system.

and will say the render engine is half life.

 

So I code a 3D environment.

Code something like splines for the space ship to follow a path.

Since its real time it has to be coded in a fast language

C or C++

right ?

So lets say we code this in C++

How long would it take a experienced Coder to code this ?

 

 

ghonma might I suggest you post a thumb with a link to your graphics :)

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


svdl posted Sun, 08 February 2009 at 6:18 AM

What you're talking about is a so-called "game mod"; a modification of an existing game.

What you would need is the following:

The import/conversion tool are available from the Half-Life community.
The modeling can be done using a standard modeling application.

There is no need to write a single line of C/C++

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


jfbeute posted Mon, 09 February 2009 at 2:29 AM

Quote - As for how long it takes, i'll say this again, more then a language, you need to learn math. Languages are easy, anyone with half a brain can learn C/C++ in 6 months. Sure, you wont be a master but you can learn enough to make whatever programs you need to.

Being an experienced C/C++ programmer myself and having trained several C/C++ programmers I can say that teaching an experienced programmer to work properly in C/C++ takes at least 1 year when coached intensively (this doesn't mean they can't produce anything earlier but to write proper and efficient code takes time and experience). For a newby programmer (and this includes anyone just leaving any course or training, anyone who hasn't written commercial code for at least 2 years) add another year to understand that writing commercial code isn't about finding the best algorithm but about finding a proper compromise between functionality, flexibility and performance while keeping maintainability and testability in mind. In all I don't consider a C/C++ programmer with less than 4 years commercial experience an experienced programmer (and I do know several C/C++ programmers with far more experience than I don't consider worth their price).
As far as the math is concerned I know it is important but most of that part of the problem can be understood by working at it and trying out what will work for you. Begin simple and add complexity as you get to understanding it. First really understand the tools you use (this means the programming language and all development tools), then understand the problem you are trying to solve and then think about a simple solution, code it and refine it until it really works.
So this means for anyone starting with just dreams assume at least 8 years of full time work (or 12 years of after hours work). During the final 2 years you might find others willing to cooperate if your goal, code and documentation is clear and understandable.


ghonma posted Mon, 09 February 2009 at 4:38 AM

I'm not saying that programming experience and training is not important, but 3d programming actually uses little of the more involved aspects of C/C++. Instead you will often be dealing with very simple data structures, functions and object models. The algorithms you will need to work with though, are usually based on horrendously complex math/3d concepts and if you don't understand these properly, you will have lots of problems. ie if you have a limited time to learn this stuff, start with the math first and slowly learn as much code as you need to implement the math. If nothing else, this will at least tell you right away if you even want to do 3D coding.

There really is no point in becoming a pro coder first and then finding that you suck at math so badly that you cant even do a basic modeller with your amazing programming skill.


RorrKonn posted Mon, 09 February 2009 at 8:14 AM

One goes oh no, no coding needed, just make game mods, other goes 12 years , LOL

 

This is a kool site, Pong was the first game I ever played.

The pong console was huge no cartridges either just the game pong.Thank the Gods for Mario.

http://www.cppgameprogramming.com/cgi/nav.cgi?page=pong

 

jfbeute I am guessing 12 years to re code a app like C4D

I have no plains to re code app's that already exist.

 

Auto desk now has 3 3D app's Max,Maya,XSI that all do the same thing. LOL.

Then there is Truspace Blender Lightwave C4D Houdini etc etc we just don't need any more main 3D apps.

None of these app's are practical for solo Artist any ways.

 

ghonma I have been able to do any math I tried, what kinds of mathematics are you talking about ?

Trig ,Calculus ect ect need a clue :)

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


bagginsbill posted Mon, 09 February 2009 at 5:34 PM

RorrKonn,

The linked page

Mathematical foundations

is an excellent summary of the common mathematics of n-dimensional vector arithmetic. In particular, 3D is 3-dimensional, and is thoroughly introduced (but not discussed in detail as a textbook would).

If you can follow that whole thing, then you're more than ready to do some very sophisticated stuff.

Section A.2 Rn as a real vector space is a must. If you're going to write any algorithms that interact with geometry, then you have to be able to understand coordinates in 3D, vectors in 3D and their normals, dot products and cross products of vectors to find how they relate to each other (angles and such).

Section A.3 The point set topology of Rn is crucial to being able to write a polygon reduction algorithm, since the primary aspect there is to know when you can safely collapse two points into one without fear of significantly altering the mesh.

Things get more complicated from there. You would want to understand how to generalize smooth functions in 3D (section A.6) to be able to do things like collision detection on subdivision surfaces and so on, where the recorded mesh points are not joined by simple flat faces.

Section A.7 Smooth curves in Rn would be really important for defining 3D splines for animation, as well as determining where a ray in ray-tracing might intersect various curved shapes expressed as mathematical relations.

Section A.9 Projection function is necessary to work with various kinds of cameras.

This is by no means a complete set. For example, nowhere in there is anything mentioned about rotation, translation, and scaling as it applies to manipulation of models in 3D space. That involves matrix arithmetic operations on the vectors.

If that leaves you hungry for more, OK then, have a look at this.

standards.iso.org/ittf/PubliclyAvailableStandards/C030811e_FILES/MAIN_C030811e/ISOIEC_18026E_TOC.HTM


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


RorrKonn posted Mon, 09 February 2009 at 10:30 PM

 

Got Windows Visual C++ 2008 express edition.

They have Herb Schildt C++ A Beginner's Guide in pdf.helpful stuff.

They also have game development app's.

 

Algebra & Trig, I think it's been a long time since we used them.

Mathematical foundations

 

I surfed threw the links, got a little confused.

I think there talking about deferent countries.cause they have deferent standards.

Not sure if all this is for 3D.but if it is I am using cheat sheets, a lot of them :)

Don't think my app will have physics , planets will not actually have gravity , at lest not the early versions.

standards.iso.org/ittf/PubliclyAvailableStandards/C030811e_FILES/MAIN_C030811e/ISOIEC_18026E_TOC.HTM

 

All this is so cool I am starting to get the idea of what I need to learn & what it takes to make the app.

============================================================ 

The Artist that will fight for decades to conquer their media.
Even if you never know their name ,your know their Art.
Dark Sphere Mage Vengeance


kuroyume0161 posted Tue, 10 February 2009 at 1:11 AM

Avoid the Schildt!! ;)  Good reference.  No good for programming in C++.  Go to Amazon and get a list of recommended books for beginners in C++ (there will be many).  Eventually get "Effective C++ Third Edition" when you have some experience. :)

I found C++ atrociously difficult back in the late 90s (coming from C/BASIC/Assembler/LISP/Pascal 'procedural' languages).  The books, standard, and STL have improved significantly since.  I went to Java first (for a taste of REAL OOP) because of that first impression and it made the later transition to C++ a lot smoother.

The key to programming in almost any language (I have a dozen or more under my belt) is understanding the underlying programming paradigms.  If you understand something about memory management and how that works (even for a language that handles it for you), boolean algebra, functions and data (and objects for OOP), realize that everything in the end is Binary!, branch conditions, and a few other fundamentals then you can easily adapt to any new language you need to learn.  After that it is all about varied syntaxes and semantics.


There is indeed a new plugin for Cinema 4D that adds Python support but so far it is acting a bit weird and needs more fleshing out of the Cinema 4D support.  For the weird part, an example (ignore lack of indentations):

class ...
def init():
...
def somefunc():
self.init()

I get an error about the function taking no arguments but one is included.  Where? ;)  So there is some work to be done.  This has been a monumental task for the developer but my verdict is that it isn't quite ready for indepth Python scripting in Cinema 4D.  My idea was to take the COFFEE example plugins and turn them into Python plugins but there have been too many omissions and issues to do more than three very basic GUI ones.

C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, you blow your whole leg off.

 -- Bjarne Stroustrup

Contact Me | Kuroyume's DevelopmentZone


odf posted Tue, 10 February 2009 at 1:43 AM

Quote -
class ...
def init():
...
def somefunc():
self.init()

I get an error about the function taking no arguments but one is included.  Where? ;)  So there is some work to be done.

This has nothing to do with the implementation. You've simply written incorrect Python code.

In Python, instance methods always receive "self" (the instance they were called on) as an implicit argument. You should have written "def init(self):" and "def somefunc(self):".

-- I'm not mad at you, just Westphalian.


kuroyume0161 posted Tue, 10 February 2009 at 1:48 AM

I tried that and it said '''the function' takes exactly 1 argument (2 given)". ;)

And these are existing class functions in the 'SDK' not my own.  I might be a Python newbie but I understand how this works from learning and example.

ETA: Oh, I see.  So each function in the class needs to be like: def init(self):
and the call self.init().  So much for that.  Hey, I'm just at Classes in "Learning Python" but I want to get a more recent book.  This self. self. self. stuff may drive me insane. :)

C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, you blow your whole leg off.

 -- Bjarne Stroustrup

Contact Me | Kuroyume's DevelopmentZone


odf posted Tue, 10 February 2009 at 2:15 AM

Just in case I wasn't clear: you always call an instance method with one parameter less than declared. If you declare it with one parameter, you call it with none, etc. Your example had an instance method with no declared parameters. That's something you simply don't do in Python.

I'm not sure what you mean by "these are existing class functions". You've given an example with self-defined functions. How does that relate to the SDK? Sorry for nitpicking, but from your example it looked like you might have mistaken an error on your part for a problem in the libraries. So I tried to clarify that.

EDIT: Just saw your edit. Yep, it's one of the few things I really don't like very much about Python. One gets used to it after a while, but it's still not very elegant.

-- I'm not mad at you, just Westphalian.


kuroyume0161 posted Tue, 10 February 2009 at 3:02 AM

I just haven't encountered this yet:

def func(self):

self.func()

But that works. :)

The docs for the Cinema 4D Python interface are a bit rough around the edges.  Some of the methods are shown as this.func(self) whereas other are simply this.func2().  Might be lax documentation.  And () is acceptable in the other ten languages I know so... :D

Thanks. :)

C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, you blow your whole leg off.

 -- Bjarne Stroustrup

Contact Me | Kuroyume's DevelopmentZone


odf posted Tue, 10 February 2009 at 5:29 AM

Quote - The docs for the Cinema 4D Python interface are a bit rough around the edges.  Some of the methods are shown as this.func(self) whereas other are simply this.func2().  Might be lax documentation.  And () is acceptable in the other ten languages I know so... :D

That's definitely sloppy documentation. Methods should be documented the way they are used, not the way they are declared. Then again, in most languages those two coincide. Looks like the person preparing the documentation wasn't an experienced Python programmer. 😉

-- I'm not mad at you, just Westphalian.