
Zhu3D
Source (link to git-repo or to original if based on someone elses unmodified work):
You have up to 8 lights, background settings, wire-modes or different illumination models. For picture rendering and textures all common pic-formats are recognized. You can define your own customized functions to any desired complexity level, nested or even recursive functions inclusively. For special purposes if-clauses and boolean operators are supported. Isosurfaces can use different volume-based algorithms.
Zhu3D is originally designed for *nix-systems, but runs as well under Mac OS X or Windows 2000-Vista in all 32/64 bit-flavours. It is fully localized for English, German, Spanish, French and Chinese and partially for Czech (Gui only). API's like KDE, Gnome, Motif, Mac OS or Windows XP/Vista are supported natively. All these settings as well as most others can be changed dynamically at runtime. The application comes with extended help files and a lot of examples. A precompiled and ready-to-go Windows version is available.
HARDWARE:
For basic tasks even a really slow and ancient PC without HW-OpenGL may be sufficient. However, neat things like motion blur, morphing or isosorfaces are a challenge for every GPU/CPU out there. Zhu3D automatically utilizes up to 16 highly optimized parallel threads therefore. When compiling by yourself, you easely can enable vectorizing with SSE3 as an additional boost-option.
COMPILING:
All unnecessary dependencies are strictly avoided. So compiling is a mere child's play at your fingertips. Everything you need is Qt >=4.3 and OpenGL >=1.4 whereas OpenGL may even be a pure software implementation like Mesa. The qmake easily can be taylored for special needs, what supports packagers.
Have fun, Heinz van Saanen
What is new in 4.2.6
- Removed loading of real ancient Zhu3D-files
- Workaround for 'gluPerspective' error in Qt4 4.8.4
- Fixed compile error on older Suse/Mandriva i686. Special thanks to Pavel for reports
- Fixed tsc-compile error on older Mandriva i686. Special thanks to Pavel for reports
- Fixed tsc-compile error on newest ICC
- Improved Makefile for compilations for newer Intel ICC
- Improved Czech translation. Special thanks to Pavel
- Cosmetic improvements/updates or typo-fixes elsewhere
What was new in 4.2.4
- Fixed a very unlikely but possible memory-bug in the XML-file saving/loading-part
- Fixed a very unlikely but possible memory-leak in speedit.cpp
- Fixes for the timestamp-counter on newer platforms
- Slightly optimized some default window positions after the 1.st start ever
- Made settings-stuff more elegant throughout the code what shrinks the executable size too
- Enabled strip option -s as default compiler switch, what leads to slightly smaller executables
- Disabled senseless -ffast-math switch for GCC
- Switched icons to more modern KDE4-style where this seems optically feasible and consistent
- Cosmetic improvements/updates or typo-fixes elsewhere
Ratings & Comments
49 Comments
11.1 rpms are done. https://api.opensuse.org/build/home:thidney/openSUSE_11.1/i586/zhu3d/zhu3d-4.1.8-5.1.i586.rpm Zhu3d is build in my home directory, till I get into multimedia group, again. I have question for you and kde-apps admin. Is it possible to create stable link to this project? something like www.kde-apps.org/~zhu3d? or simillar? Is it quite ugly to put links into documentation like http://www.kde-apps.org/content/show.php?content=43071
Thank you form the rpm, thidney. The link could not be changed from my side. At least the link never changes and is always stable:-) Kind regards, Heinz
I pack latest version for opensuse, but I get SIGSEGV. opengl works in my system. Here is gdb output: gdb) #0 0x0000000000000000 in ?? () (gdb) #1 0x00002afb98b47e4f in _nv001444gl () from /usr/X11R6/lib64/libGLcore.so.1 (gdb) #2 0x00002aaab1326ebf in ?? () from /usr/lib64/libGL.so (gdb) #3 0x00002aaab132dade in _init () from /usr/lib64/libGL.so (gdb) #4 0x00002afb934c0c56 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #5 0x00002afb934c0d7e in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #6 0x00002afb934c4bf0 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #7 0x00002afb934c08e6 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #8 0x00002afb934c43bb in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #9 0x00002afb96be3fdb in ?? () from /lib64/libdl.so.2 (gdb) #10 0x00002afb934c08e6 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) #11 0x00002afb96be436d in ?? () from /lib64/libdl.so.2 (gdb) #12 0x00002afb96be3f41 in dlopen () from /lib64/libdl.so.2 (gdb) #13 0x00002afb9606c2ed in QLibraryPrivate::load_sys () from /usr/lib64/libQtCore.so.4 (gdb) #14 0x00002afb960688e5 in QLibraryPrivate::load () from /usr/lib64/libQtCore.so.4 (gdb) #15 0x00002afb9606891f in QLibrary::load () from /usr/lib64/libQtCore.so.4 (gdb) #16 0x00002afb96068949 in QLibrary::resolve () from /usr/lib64/libQtCore.so.4 (gdb) #17 0x00002afb93713a45 in QGLContext::getProcAddress () from /usr/lib64/libQtOpenGL.so.4 (gdb) #18 0x00002afb936f3410 in QGLExtensions::init_extensions () from /usr/lib64/libQtOpenGL.so.4 (gdb) #19 0x00002afb93714261 in QGLExtensions::init () from /usr/lib64/libQtOpenGL.so.4 (gdb) #20 0x00002afb936ef12a in QGLWidgetPrivate::initContext () from /usr/lib64/libQtOpenGL.so.4 (gdb) #21 0x00002afb93713687 in QGLWidgetPrivate::init () from /usr/lib64/libQtOpenGL.so.4 (gdb) #22 0x00002afb936ef661 in QGLWidget::QGLWidget () from /usr/lib64/libQtOpenGL.so.4 (gdb) #23 0x000000000043088a in OGLWidget (this=0x7fff175f34b0, parent=0x2aaab146eef8) at src/glwidget.cpp:63 (gdb) #24 0x000000000041059d in main (argc=1, argv=0x7fff175f4378) at src/main.cpp:224 (gdb) #25 0x00002afb97bdbb54 in __libc_start_main () from /lib64/libc.so.6 (gdb) #26 0x000000000040fcc9 in _start ()
nvidia+drivers from the repo? for good reasons i added the following hint to the latest readme: openSUSE 10.3 seems to fail with NVIDIA-drivers from the repository. Just install the driver manually instead, what fixes the quirks. hope this helps, heinz
this was nicest RTFM I ever get :) I will give it a try. Anyway it is quite strange that it do not work. Could you please confirm that you are sure about you code? I would like create bug report for it if so. Thanks.
at the moment i am quite sure it's not a zhu-problem. a few days ago a user reported this strange stuff too. we tracked this down with virtually the same configurations, but one difference: mine worked, his not. then i remembered, that i had similar nvidia troubles in october, until i updated manually. this worked for him too. really strange is, that the opengl-stuff seems to work. until you compile by yourself. in at least 2 certified cases this happend for the qt4 hellogl-example too. have a look at install.txt. there you will find a cross-table of tested and proved configurations. kind regards, heinz
just to inform you: one of the affected zhu-users sent a bug-report to novell. you can find it, the following discussion and a bug-acceptance under: https://bugzilla.novell.com/show_bug.cgi?id=368834 i am still not shure, whether novell or trolltech is the "bad guy" to blame. but it seems quite obvious, that zhu-code is not involved. kind regards, heinz
Thans Hans, I added myself to that one.
Gentoo ebuild can be found here: http://repo.or.cz/w/kdeapps-overlay.git?a=blob;f=sci-mathematics/zhu3d/zhu3d-3.4.2.ebuild;hb=HEAD
are updated, currently I have some problems with 10.2 but 10.3 and 10.1 are ready.
Hi. I am looking forward to trying Zhu3d (version 3.3.4), but I am having trouble building it on RHEL5. I should note that I am a lowly end user, not a developer, so I could use a little bit of hand-holding here. qmake ran with no problem, but when I ran make, I got a large number of errors, a small subset of which I listed below. I am running RHEL5 on an x86_64 machine. Can you help? Thanks, Michael [braunm@braunm2 zhu3d-3.3.4]$ make g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/lib64/qt4/include/QtCore -I/usr/lib64/qt4/include/QtCore -I/usr/lib64/qt4/include/QtGui -I/usr/lib64/qt4/include/QtGui -I/usr/lib64/qt4/include/QtOpenGL -I/usr/lib64/qt4/include/QtOpenGL -I/usr/lib64/qt4/include -I. -I. -o main.o src/main.cpp \\\\\\\\./ui_mainwindow.h: In member function ‘void Ui_mainCtrl::setupUi(QWidget*)’: ./ui_mainwindow.h:84: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:85: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:86: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:87: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:88: error: ‘class QGridLayout’ has no member named ‘setHorizontalSpacing’ ./ui_mainwindow.h:89: error: ‘class QGridLayout’ has no member named ‘setVerticalSpacing’ ./ui_mainwindow.h:101: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:102: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:103: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:104: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:105: error: ‘class QGridLayout’ has no member named ‘setHorizontalSpacing’ ./ui_mainwindow.h:106: error: ‘class QGridLayout’ has no member named ‘setVerticalSpacing’ ./ui_mainwindow.h:165: error: ‘class QVBoxLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:166: error: ‘class QVBoxLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:167: error: ‘class QVBoxLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:168: error: ‘class QVBoxLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:224: error: ‘class QVBoxLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:225: error: ‘class QVBoxLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:226: error: ‘class QVBoxLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:227: error: ‘class QVBoxLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:235: error: ‘class QHBoxLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:236: error: ‘class QHBoxLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:237: error: ‘class QHBoxLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:238: error: ‘class QHBoxLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:288: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:289: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:290: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:291: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:292: error: ‘class QGridLayout’ has no member named ‘setHorizontalSpacing’ ./ui_mainwindow.h:293: error: ‘class QGridLayout’ has no member named ‘setVerticalSpacing’ ./ui_mainwindow.h:410: error: ‘class QHBoxLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:411: error: ‘class QHBoxLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:412: error: ‘class QHBoxLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:413: error: ‘class QHBoxLayout’ has no member named ‘setBottomMargin’ ./ui_aniedit.h: In member function ‘void Ui_aniUI::setupUi(QWidget*)’: ./ui_aniedit.h:53: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_aniedit.h:54: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_aniedit.h:55: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_aniedit.h:56: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_aniedit.h:57: error: ‘class QGridLayout’ has no member named ‘setHorizontalSpacing’ ./ui_aniedit.h:58: error: ‘class QGridLayout’ has no member named ‘setVerticalSpacing’ ./ui_aniedit.h:64: error: ‘class QHBoxLayout’ has no member named ‘setLeftMargin’
Hello Michael, 64-Bit is definitly not the reason and the make command looks quite healthy. I guess, it is the Qt-designer, where Trolltech has built in some new functions depending on Qt 4.3. With other words: updating to a newer Qt should quite likely solve the problem.
I installed Qt 4.3.3 and I am still getting errors (below). Could it be related to OpenGL? I can I tell if I have the right version, etc? Thanks, Michael [braunm@braunm2 zhu3d-3.3.4]$ make g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.3.3/mkspecs/linux-g++-64 -I. -I/usr/local/Trolltech/Qt-4.3.3/include/QtCore -I/usr/local/Trolltech/Qt-4.3.3/include/QtCore -I/usr/local/Trolltech/Qt-4.3.3/include/QtGui -I/usr/local/Trolltech/Qt-4.3.3/include/QtGui -I/usr/local/Trolltech/Qt-4.3.3/include/QtOpenGL -I/usr/local/Trolltech/Qt-4.3.3/include -I/usr/X11R6/include -I. -I. -o main.o src/main.cpp In file included from src/mainwindow.h:31, from src/main.cpp:28: src/glwidget.h:20:51: error: QGLWidget: No such file or directory In file included from src/mainwindow.h:45, from src/main.cpp:28: src/sysinfo.h:22:42: error: QtOpenGL: No such file or directory ./ui_mainwindow.h: In member function ‘void Ui_mainCtrl::setupUi(QWidget*)’: ./ui_mainwindow.h:84: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:85: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:86: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:87: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:101: error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:102: error: ‘class QGridLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:103: error: ‘class QGridLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:104: error: ‘class QGridLayout’ has no member named ‘setBottomMargin’ ./ui_mainwindow.h:165: error: ‘class QVBoxLayout’ has no member named ‘setLeftMargin’ ./ui_mainwindow.h:166: error: ‘class QVBoxLayout’ has no member named ‘setTopMargin’ ./ui_mainwindow.h:167: error: ‘class QVBoxLayout’ has no member named ‘setRightMargin’ ./ui_mainwindow.h:168: error: ‘class QVBoxLayout’ has no member named ‘setBottomMargin’
Do the OpenGL-examples from Qt 4.3.3 work or can you re-compile them? Then you have a valid install. Maybe it is the best, you email me your makefile produced by qmake.
modify the .pro and add QT +=opengl
cd zhu3d-3.x.x notice there is a zhu3d.pro, don't enter the directory src qmake make
I'm running Xubuntu on an amd64 system and when I qmake I get these conflicts Quote:
WARNING: Found potential symbol conflict of mainwindow.cpp (src/mainwindow.cpp) in SOURCES
WARNING: Found potential symbol conflict of mainwindow.h (src/mainwindow.h) in HEADERS
WARNING: Found potential symbol conflict of ligedit.cpp (src/ligedit.cpp) in SOURCES
WARNING: Found potential symbol conflict of ligedit.h (src/ligedit.h) in HEADERS
WARNING: Found potential symbol conflict of matedit.cpp (src/matedit.cpp) in SOURCES
WARNING: Found potential symbol conflict of matedit.h (src/matedit.h) in HEADERS
WARNING: Found potential symbol conflict of entedit.cpp (src/entedit.cpp) in SOURCES
WARNING: Found potential symbol conflict of entedit.h (src/entedit.h) in HEADERS
WARNING: Found potential symbol conflict of aniedit.cpp (src/aniedit.cpp) in SOURCES
WARNING: Found potential symbol conflict of aniedit.h (src/aniedit.h) in HEADERS
WARNING: Found potential symbol conflict of picedit.cpp (src/picedit.cpp) in SOURCES
WARNING: Found potential symbol conflict of picedit.h (src/picedit.h) in HEADERS
WARNING: Found potential symbol conflict of funedit.cpp (src/funedit.cpp) in SOURCES
WARNING: Found potential symbol conflict of funedit.h (src/funedit.h) in HEADERS
WARNING: Found potential symbol conflict of speedit.cpp (src/speedit.cpp) in SOURCES
WARNING: Found potential symbol conflict of speedit.h (src/speedit.h) in HEADERS
WARNING: Found potential symbol conflict of diredit.cpp (src/diredit.cpp) in SOURCES
WARNING: Found potential symbol conflict of diredit.h (src/diredit.h) in HEADERS
WARNING: Found potential symbol conflict of error.cpp (src/error.cpp) in SOURCES
WARNING: Found potential symbol conflict of error.h (src/error.h) in HEADERS
Any clues?
Only one clue. Maybe you are using the "wrong" qmake for Qt 3.x. You can check this with: qmake -query "QT_INSTALL_PREFIX"
it only returned /usr I don't know what that's supposed to tell me though...
okay I think I fixed that issue, I read the previous post about the sudo linking, and that was fixed but now when I make I get this: Quote:
/usr/bin/uic-qt4 src/ui/mainwindow.ui -o ui_mainwindow.h
/usr/bin/uic-qt4 src/ui/ligedit.ui -o ui_ligedit.h
/usr/bin/uic-qt4 src/ui/matedit.ui -o ui_matedit.h
/usr/bin/uic-qt4 src/ui/entedit.ui -o ui_entedit.h
/usr/bin/uic-qt4 src/ui/aniedit.ui -o ui_aniedit.h
/usr/bin/uic-qt4 src/ui/picedit.ui -o ui_picedit.h
/usr/bin/uic-qt4 src/ui/funedit.ui -o ui_funedit.h
/usr/bin/uic-qt4 src/ui/speedit.ui -o ui_speedit.h
/usr/bin/uic-qt4 src/ui/diredit.ui -o ui_diredit.h
/usr/bin/uic-qt4 src/ui/error.ui -o ui_error.h
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I/usr/X11R6/include -I. -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I/usr/X11R6/include -I. -I. -o main.o src/main.cpp
make: g++: Command not found
make: *** [main.o] Error 127
all fixed, and now to run the program thanks for the help
are updated, use link above
hi guys i have been solved the problem with the qt4 debian unstable package with this: $sudo mv /etc/alternatives/qmake /etc/alternatives/qmake-qt3 $sudo ln -s /usr/bin/qmake-qt4 /etc/alternatives/qmake when u install qt4 he don't change the simbolic link in 'alternatives' and when you try to run qmake, you create the Makefile with a qt3 version
Congratulation for Zhu3D. I just update K3DSurf to see that you too have done it few minutes before me :). Keep up the good work.
Just a thought... Maybe you two could work together to produce a super killer app. I know, I know, Zhu3D is based on QT4 and K3DSurf is based on QT3. But it would be nice if both of you could share ideas and skills to develop a KDE4-based app. I believe the APIs are stable now. Just my two cents.