473,545 Members | 2,013 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Xah's Edu Corner: Introduction to 3D Graphics Programing

Of Interest:

Introduction to 3D Graphics Programing
http://xahlee.org/3d/index.html

Currently, this introduction introduces you to the graphics format of
Mathematica, and two Java Applet utilities that allows you to view them
with live rotation in a web browser. Also, it includes a introductory
tutorial to POV-Ray.

Once you understand any one of these pages, you can use your favorite
programing language to start doing 3D Graphics Programing.

In the coming months, i will also introduce the .obj format that are
used by many geometric modeling programs. And, a tutorial on how to use
Python (or Perl, lisp) to do 3D Graphics programing, by setting up
functions that spits out any of 3D-Geometry Formats (such as
Mathematica Graphics or POV-Ray or .inc).

These are the imminent plans for the coming weeks. Other potential
subjects are introduction or tutorials on various utilities or
programing lang libraries that does conversion between different 3D
graphics formats, dedicated tutorial on how to generate mathematical
surfaces, more elaborate study on POV-Ray's abilities and sample cases,
etc.

The focus of these pages, will be 3D-Graphics programing with the goal
of Algorithmic Mathematical Art.
(see
http://xahlee.org/Periodic_dosage_di...aci_larcu.html )

In particular, we focus on creating geometric objects and their
arrangement that are esthetic in a mathematical way. (for example,
regular tilings in 3D, nested structures in 3D, symmetric structures in
3D, elaborate 3D maze tunnels, beehive sculpting, regular polyhedrons
and their decorations, projection and slices of higher dimensional
symmetries, 3D-manifolds ... etc.) This mathematical esthetic is
opposed to, for example, rendering techniques or technologies (e.g.
fogs, sceneries, fast algorithms...et c) that are quite common in
computer graphics literatures.

Xah
xa*@xahlee.org
∑ http://xahlee.org/

Dec 23 '06 #1
12 3571
Xah Lee wrote:
Of Interest:
to which of comp.lang.perl. misc, comp.lang.pytho n, comp.lang.lisp,
comp.lang.java. programmer, comp.lang.funct ional ?
Dec 23 '06 #2
Xah Lee wrote:
Introduction to 3D Graphics Programing
http://xahlee.org/3d/index.html
You will probably find it more rewarding to use a more modern graphics
system, such as OpenGL or DirectX, with a suitable programming language
rather than Mathematica's. I would recommend any of OCaml, F#, Haskell,
Lisp, Scheme, Python or Ruby for graphics, you can do much more
sophisticated, animated, real time visualisations than you can with
Mathematica's primitives.

There are lots of great web pages out there. I've written some 2D and 3D
graphics examples in OCaml:

http://www.ffconsultancy.com/product.../visualisation
http://www.ffconsultancy.com/free/ray_tracer
http://www.ffconsultancy.com/free/fractal
http://www.ffconsultancy.com/free/maze

and more recently F#:

http://www.ffconsultancy.com/dotnet/fsharp

I was very impressed with the tutorial videos on VPython at ShowMeDo:

http://showmedo.com/videos/series?na...nVPythonSeries

For an introduction to OpenGL, look no further than the NeHe tutorials at
GameDev:

http://nehe.gamedev.net

One of our future products at FF Consultancy is a suite of extensions for
the F# interactive mode that allows you to visualise 2D and 3D graphics in
real time with simplicity rivalling Mathematica but the sophistication and
performance of DirectX, whilst also having the power of the F# programming
language and .NET to analyse your data.

--
Dr Jon D Harrop, Flying Frog Consultancy
Objective CAML for Scientists
http://www.ffconsultancy.com/product...ex.html?usenet
Dec 23 '06 #3
Boris Borcic wrote:
Xah Lee wrote:
>Of Interest:

to which of comp.lang.perl. misc, comp.lang.pytho n, comp.lang.lisp,
comp.lang.java. programmer, comp.lang.funct ional ?
You must be new. Otherwise you would be familiar with this troll already.

jue
Dec 23 '06 #4
Dear Jon Harrop,

Thanks for the informative reply.

I don't know OpenGL, but i think it is a low-level crap, and have done
the industry huge irreparable damage the same way unix has.

This wikipedia excerpt from
http://en.wikipedia.org/wiki/QuickDraw_3D
summarize my sentiment:

«Most 3D toolkits concentrate on the lowest levels of the 3D rendering
pipeline...

For instance, the OpenGL system consists primarily of a system for
describing geometry in various ways...

Higher-level concepts of the 3D world are generally not included in
low-level libraries...

To add to the problems, OpenGL was not truly low-level..
»

Note this:

«
TODAY THERE REMAINS NO STANDARD HIGH-LEVEL API FOR 3D GRAPHICS. Several
attempts have been made, including OpenGL++ and the SGI/Microsoft
Fahrenheit graphics API, but none of these have made it to production.
»

----------

As a practical example of its low-level problem, i looked at your basic
OpenGL tutorial, the minimal program
(http://www.ffconsultancy.com/product...sualisation/):

let () =
let argv' = Glut.init Sys.argv in
ignore (Glut.createWin dow ~title:"OpenGL Demo");
GlClear.color (0.1, 0.3, 0.1);
Glut.displayFun c ~cb:(fun () -GlClear.clear [ `color ]; Gl.flush
());
Glut.mainLoop ()

Immediately, a extremely intelligent alien who understand advanced
programing and geometry in 3D and higher dimensions, but who is not
familiar with OpenGL per se, would be facing 6 lines, almost all of it
are irrelevant to geometry or the mathematics of programing,
but are extraneous concepts created by the system itself . (the
exceptions are the “color”, and “clear”)

This is in contrast to the Mathematica system or its graphics. For
example:
http://xahlee.org/3d/mma.html e.g.

Graphics3D[{
Cuboid[{0, 0, 0}],
Point[{1.5, 1.5,0}],
Polygon[{{2, 2, 1}, {2, 1, 1}, {1, 2, 1}}]
}]

Even if you don't know nothing about Mathematica or never coded a
single line of 3d graphics application, the lines above are all very
meaningful, as they are inalienable concepts of geometry, not something
extraneous as most imperative languages or systems or unix forces upon
its users.

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

Note that the above sentiment about OpenGL, is just my sentiment on the
overall situation of graphics programing. (and in general the low-level
garbage situation applies to almost all imperative languages and vast
majority of protocols in the industry.) I don't particular know OpenGL
as a low-level graphic system is a good one or not. (but it is probably
correct to assume that Microsoft's Direct3D is far more better designed
system at the same level)

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

Regarding VisualPython... i saw a demo in 2002 by a professor
friend. I think it is good. Though, why is its licensing not GPL or
otherwise Open Source? That's kinda odd since Pyhton is.

Thanks for your links and tutorials. I find them useful.

----

What i'm looking for, is a system that allows one to easily to graphics
programing. By graphics programing, i mean 3d geometric shapes
manipulation, as opposed to rendering or implementing CAD systems or
how to write photoshop filters or the science of realistic rendering
etc as most people are thinking of when hearing the term computer
graphics programing.

So far as i know, Mathematica is the platform that allows one to do
graphics programing. But, i think Flash probably is another platform
that does it. And i think VisualPython is also.

I'm interested in other platforms that allows one to do this.

Xah
xa*@xahlee.org
∑ http://xahlee.org/
Jon Harrop wrote:
Xah Lee wrote:
Introduction to 3D Graphics Programing
http://xahlee.org/3d/index.html

You will probably find it more rewarding to use a more modern graphics
system, such as OpenGL or DirectX, with a suitable programming language
rather than Mathematica's. I would recommend any of OCaml, F#, Haskell,
Lisp, Scheme, Python or Ruby for graphics, you can do much more
sophisticated, animated, real time visualisations than you can with
Mathematica's primitives.

There are lots of great web pages out there. I've written some 2D and 3D
graphics examples in OCaml:

http://www.ffconsultancy.com/product.../visualisation
http://www.ffconsultancy.com/free/ray_tracer
http://www.ffconsultancy.com/free/fractal
http://www.ffconsultancy.com/free/maze

and more recently F#:

http://www.ffconsultancy.com/dotnet/fsharp

I was very impressed with the tutorial videos on VPython at ShowMeDo:

http://showmedo.com/videos/series?na...nVPythonSeries

For an introduction to OpenGL, look no further than the NeHe tutorials at
GameDev:

http://nehe.gamedev.net

One of our future products at FF Consultancy is a suite of extensions for
the F# interactive mode that allows you to visualise 2D and 3D graphics in
real time with simplicity rivalling Mathematica but the sophistication and
performance of DirectX, whilst also having the power of the F# programming
language and .NET to analyse your data.

--
Dr Jon D Harrop, Flying Frog Consultancy
Objective CAML for Scientists
http://www.ffconsultancy.com/product...ex.html?usenet
Dec 27 '06 #5
Xah Lee wrote:
Dear Jon Harrop,

Thanks for the informative reply.

I don't know OpenGL, but i think it is a low-level crap, and have done
the industry huge irreparable damage the same way unix has.
OpenGL is low level, that's right, but it is not crap. OpenGL is
hardware independent, and is a true multiplatform standard. The
difference between OpenGL and higher level libraries, like OpenInventor,
it is similar to the difference between a low-level programming language
like C and a higher level object-oriented language, IMHO.
I don't particular know OpenGL
as a low-level graphic system is a good one or not. (but it is probably
correct to assume that Microsoft's Direct3D is far more better designed
system at the same level)
Direct3D it is lower level than OpenGL, and usually needs more
instructions than OpenGL to do the same things.

Dec 27 '06 #6

Xah Lee wrote:
Regarding VisualPython... i saw a demo in 2002 by a professor
friend. I think it is good. Though, why is its licensing not GPL or
otherwise Open Source? That's kinda odd since Pyhton is.
You are confusing VPython with Activestate's Visual Python IDE plugin
for Visual Studio.
>From VPython's home page in very bold font - "VPython is free and
open-source"
http://www.vpython.org/

Dec 27 '06 #7
["Followup-To:" header set, but it's best not to followup at all.]

On 2006-12-27, Raff <CA************ **@hotmail.itwr ote:
Xah Lee wrote:
>I don't know OpenGL, but i think it is a low-level crap, and have done
^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^
>the industry huge irreparable damage the same way unix has.

OpenGL is low level, that's right, but it is not crap.
Whether it is or not, Xah doesn't know and doesn't care, as he is
a troll (and anyone who would say "I don't know X but it's crap" is
definitely either clueless or trolling). Please don't pay attention
to his rants.

--keith

--
kk************@ wombat.san-francisco.ca.us
(try just my userid to email me)
AOLSFAQ=http://www.therockgard en.ca/aolsfaq.txt
see X- headers for PGP signature information

Dec 27 '06 #8
Here's their license:
http://www.vpython.org/webdoc/visual/license.txt

I read it wrong before.
Thanks for correction.

This is superb! I'll be looking into vpython!

Xah

Ravi Teja wrote:
Xah Lee wrote:
Regarding VisualPython... i saw a demo in 2002 by a professor
friend. I think it is good. Though, why is its licensing not GPL or
otherwise Open Source? That's kinda odd since Pyhton is.

You are confusing VPython with Activestate's Visual Python IDE plugin
for Visual Studio.
From VPython's home page in very bold font - "VPython is free and
open-source"
http://www.vpython.org/
Dec 27 '06 #9
Xah Lee wrote:
Here's their license:
http://www.vpython.org/webdoc/visual/license.txt

I read it wrong before.
Thanks for correction.

This is superb! I'll be looking into vpython!

Xah
Of course it does what it does by resort to OpenGL and C++, so is part
of the problem ;)

I am looking forward to your tutorial efforts, and hoping those efforts
can be accessed without exposure to too much polemics. Though if that
is the price of admission, that is the price of admission.

BTW, VPython is most of the way through a 4.xxx release which provides
some nice additional functionality to the 3.xx series core - like
transparency and texturing. Problem being the the lead developer has
graduated and moved on, and the NSF funding that had supported the
effort has run out.

And the core folks around the project are either science educators or
Python folks - there is little C++ expertise currently involved with
the project.

The project is looking for help.

Anyone willing to jump in should perhaps reply here or at:
vi************* ***@lists.sourc eforge.net

Art

Jan 8 '07 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

9
1591
by: Xah Lee | last post by:
Dear Joe, It is well known that you are an avid hater of Microsoft, from their technologies to their leader to their business practices. I have now and then seen your impassioned expression of this hatred, scattered among your newsgroup posts. Personally, i have an inherent distrust toward big organizations. This applies to Microsoft....
102
6964
by: Xah Lee | last post by:
i had the pleasure to read the PHP's manual today. http://www.php.net/manual/en/ although Pretty Home Page is another criminal hack of the unix lineage, but if we are here to judge the quality of its documentation, it is a impeccability. it has or possesses properties of:
23
3592
by: Xah Lee | last post by:
The Concepts and Confusions of Pre-fix, In-fix, Post-fix and Fully Functional Notations Xah Lee, 2006-03-15 Let me summarize: The LISP notation, is a functional notation, and is not a so-called pre-fix notation or algebraic notation. Algebraic notations have the concept of operators, meaning, symbols placed around arguments. In...
62
3851
by: Xah Lee | last post by:
Criticism versus Constructive Criticism Xah Lee, 2003-01 A lot intelligent people are rather confused about criticism, especially in our “free-speech” free-for-all internet age. When they say “constructive criticisms are welcome” they mostly mean “bitching and complaints not welcome”. Rarely do people actually mean that...
0
7473
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
7406
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language...
1
7431
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
5976
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
1
5337
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
3457
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3444
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
1020
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
709
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.