Logo by Maya - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Support us via Flattr FLATTR Link
 
*
Welcome, Guest. Please login or register. April 18, 2024, 04:12:56 PM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: 1 2 3 [4] 5 6   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: next will be Mandelbulber 2.0 with Qt interface  (Read 18220 times)
0 Members and 2 Guests are viewing this topic.
Buddhi
Fractal Iambus
***
Posts: 895



WWW
« Reply #45 on: April 16, 2014, 05:47:44 PM »

@buddhi do you plan to improve the "hybrid" creation of mandelbulber ?! i always found it very hard to understand what the program actually does, and quite limiting compared to the possibilities with mandelbulb3d,  are you improving on hybrid creation ( as list of formulas, rather than some predefined param slots ... ) ? i hope sooooooooooooooooooooooooooooooooo much!

Yes, it will be improved. If you look at screenshot you will see that there are separate tabs for each hybrid formula step (like in Mandelbulb3D).

Logged

lukesleftleg
Navigator
*****
Posts: 63


« Reply #46 on: April 17, 2014, 08:28:09 AM »

Just to say that the GUI is looking really nice.
Really very nice indeed.
Logged
rh73
Forums Freshman
**
Posts: 10


« Reply #47 on: April 18, 2014, 09:11:51 AM »

1. Did somebody manage to build this Qt version under Windows?
I tried it manually (qmake then make from command line) and it compiles a bunch of files then throws this error:

Code:
..\src\system.cpp: In function 'bool InitSystem()':
..\src\system.cpp:31: error: no match for 'operator=' in 'systemData.sSystem::sharedDir = QString::toStdString() const()'
c:\Qt\4.8.5\include/QtCore/../../src/corelib/tools/qstring.h:94: note: candidates are: QString& QString::operator=(QChar)
c:\Qt\4.8.5\include/QtCore/../../src/corelib/tools/qstring.h:95: note:
       QString& QString::operator=(const QString&)
c:\Qt\4.8.5\include/QtCore/../../src/corelib/tools/qstring.h:718: note:
        QString& QString::operator=(const QLatin1String&)
c:\Qt\4.8.5\include/QtCore/../../src/corelib/tools/qstring.h:424: note:
        QString& QString::operator=(const char*)
c:\Qt\4.8.5\include/QtCore/../../src/corelib/tools/qstring.h:426: note:
        QString& QString::operator=(const QByteArray&)
c:\Qt\4.8.5\include/QtCore/../../src/corelib/tools/qstring.h:428: note:
        QString& QString::operator=(char)
c:\Qt\4.8.5\include/QtCore/../../src/corelib/tools/qstring.h:504: note:
        QString& QString::operator=(const QString::Null&)
mingw32-make[1]: *** [debug/system.o] Error 1
mingw32-make[1]: Leaving directory `C:/Users/Robert/workspace/mandelbulberqt/trunk/mandelbulber2/Debug'
mingw32-make: *** [debug-all] Error 2

This is using Qt4.8.5 and mingw32-gcc-4.4.0. First I tried the latest Qt5.2 but it complained about deprecated function(s) in the code so I downgraded to 4.8 and had to downgrade gcc as well to avoid having to rebuild Qt from scratch and adding just another possible reason to mess up things and don't know what's going wrong.

2. And is there any way to properly integrate Qt into Eclipse (or visual studio, for that matter)? How is the development process going to look like? It's going to be necessary to jump a lot between ui design and coding functionality for ui elements, so using a solution where this is possible seamlessly would be very beneficial.

Edit: I'm getting closer it seems. Manual compile went through, but now it doesn't want to link:
Code:
C:\Users\Robert\workspace\mandelbulberqt\trunk\mandelbulber2\Debug>make all
mingw32-make -f Makefile.Debug all
mingw32-make[1]: Entering directory `C:/Users/Robert/workspace/mandelbulberqt/trunk/mandelbulber2/Debug'
g++ -mthreads -Wl,-subsystem,windows -o debug\mandelbulber2.exe object_script.ma
ndelbulber2.Debug  -L"c:\Qt\4.8.5\lib" -lmingw32 -lqtmaind -lQtUiTools -lpng -ljpeg -lQtGuid4 -lQtCored4 -lQtXml4 -lQtGui4 -lQtCore4
c:/mingw_gcc440/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: can not find -lpng
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\mandelbulber2.exe] Error 1
mingw32-make[1]: Leaving directory `C:/Users/Robert/workspace/mandelbulberqt/trunk/mandelbulber2/Debug'
mingw32-make: *** [debug-all] Error 2

I'm starting to feel like it would be easier (for me) to grab the render kernel and slap a nice little .NET interface on it.
« Last Edit: April 18, 2014, 12:08:51 PM by rh73 » Logged
Buddhi
Fractal Iambus
***
Posts: 895



WWW
« Reply #48 on: April 18, 2014, 04:49:41 PM »

Quote
This is using Qt4.8.5 and mingw32-gcc-4.4.0. First I tried the latest Qt5.2 but it complained about deprecated function(s) in the code so I downgraded to 4.8 and had to downgrade gcc as well to avoid having to rebuild Qt from scratch and adding just another possible reason to mess up things and don't know what's going wrong.

I use Qt 4.8.4, but I'm going to migrate to 5.2.1. One month ago I had some issues with Qt5 but last weeks there were some updates. By the way I will substitute this obosolete QtString::toAscii() function

Quote
2. And is there any way to properly integrate Qt into Eclipse (or visual studio, for that matter)? How is the development process going to look like? It's going to be necessary to jump a lot between ui design and coding functionality for ui elements, so using a solution where this is possible seamlessly would be very beneficial.

You have some options:
1) use Qt Creator - here you have full integration (ui editor with code editor)
2) use Eclipse. To integrate it you need to:
- set in project Properties/C++Build/Settings/Build Steps/Pre-build steps folowing command: qmake -o makefile mandelbulber.pro
- disable Properties/C++Build/Builder Settings/Generate Makefiles automatically
then qmake will create Makefile file and also genrate some header files like qt/ui_render_window.h
ui editor won't be integrated, but compilation will work directly from Eclipse.
3) With Visual Studio is also possible. Ask Syntopia how to do this.

Quote
I'm getting closer it seems. Manual compile went through, but now it doesn't want to link:
check if libpng is present in mingw or some library path is not defined properly

Quote
I'm starting to feel like it would be easier (for me) to grab the render kernel and slap a nice little .NET interface on it.
Would be easier for Windows users, but then this application won't be multiplatform. Under Linux it's very easy, because installation of development packages is very simple. Everything is already in the system.
Logged

rh73
Forums Freshman
**
Posts: 10


« Reply #49 on: April 18, 2014, 05:50:24 PM »

I use Qt 4.8.4, but I'm going to migrate to 5.2.1. One month ago I had some issues with Qt5 but last weeks there were some updates. By the way I will substitute this obosolete QtString::toAscii() function

The problem with Qt4.8 is that you need an old version of mingw/gcc unless you plan to compile Qt yourself. Which I'd rather avoid because first you need Perl and Python and so on.

Quote
You have some options:
1) use Qt Creator - here you have full integration (ui editor with code editor)
2) use Eclipse. To integrate it you need to:
- set in project Properties/C++Build/Settings/Build Steps/Pre-build steps folowing command: qmake -o makefile mandelbulber.pro
- disable Properties/C++Build/Builder Settings/Generate Makefiles automatically
then qmake will create Makefile file and also genrate some header files like qt/ui_render_window.h
ui editor won't be integrated, but compilation will work directly from Eclipse.
3) With Visual Studio is also possible. Ask Syntopia how to do this.
check if libpng is present in mingw or some library path is not defined properly
Would be easier for Windows users, but then this application won't be multiplatform. Under Linux it's very easy, because installation of development packages is very simple. Everything is already in the system.

I know that Qt works relatively well with VS, so that's going to be a last resort. But I wanted to try out Eclipse + mingw to learn something new. My current problem is getting libpng into the mingw installation which is bundled with Qt5 (it doesn't have msys). I tried simply mounting this mingw folder from a fresh msys install and install libpng and some other stuff but it didn't have the desired effects... (it installed into a new msys folder inside Qt's mingw). Well I guess I could just import the libpng sources into the project and don't try to mess with mingw but then installing every other library will be as tedious, too.
Logged
Buddhi
Fractal Iambus
***
Posts: 895



WWW
« Reply #50 on: April 18, 2014, 10:20:15 PM »

Quote
The problem with Qt4.8 is that you need an old version of mingw/gcc unless you plan to compile Qt yourself. Which I'd rather avoid because first you need Perl and Python and so on.

Today I have tested Qt5 (5.2.1). The result was poor. The code needed some minor changes, which was not a problem (updated code for Qt5 is in SVN). Unfortunately I wasn't able to start Mandelbulber. It crashed before main(). I don't know the reason (debug version of Qt5 is not yet available in Debian and I had no patient to compile all Qt5 libraries from source). Next thing I found that themes for Qt4 are not compatible with Qt5. This makes the program ugly (I saw preview in Qt Designer). I think it's too early to work with Qt5. Even if you look at many modern applications with Qt, you will see that still none of them use Qt5. So my decision is stay with Qt4 for next several months.
Logged

rh73
Forums Freshman
**
Posts: 10


« Reply #51 on: April 19, 2014, 12:49:31 AM »

Ah, I wrote you an email before checking the forum. I managed to build it with qt5 as well, but it crashes for me too. Good to know that it'S the same for you because I was sure I'm still doing something wrong.

Edit: Here's a bit output from the .exe I got with starting it in QtCreator:
Code:
Debugging starts
Log file name: log.txt
Detected 4 CPUs
Default data directory: C:/Users/Robert/mandelbulber
QPixmap: Must construct a QGuiApplication before a QPixmap
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
Debugging has finished

Edit: the crash happens in the constructor of RenderWindow when trying to execute
Code:
ui->setupUi(this);
I don't know enough about Qt yet... does the same code work just fine in Qt4.8?

Edit: I forgot to mention that there was another problem: in main() it tried to open a log file, but with empty filename string. You need to call InitSystem() before any call of WriteLog().
« Last Edit: April 19, 2014, 10:31:20 AM by rh73 » Logged
visual.bermarte
Fractal Fertilizer
*****
Posts: 355



« Reply #52 on: April 20, 2014, 03:54:56 PM »

using QT 4.8 and version 21, everything is fine on OSX, much easier than GTK

Code:
export PATH=$PATH:/usr/bin

Code:
cd debug
qmake -spec macx-g++
qmake -project
qmake -o makefile mandelbulber.pro

here I have added png header and library to makefile, for me is -I/Users/me/gtk/inst/include to INCPATH  and -L/Users/me/gtk/inst/lib to LIBS  wink
than I have changed cimage.hpp to include QtGui/QWidget instead of QtGui
Code:
#include <QtGui/QWidget>

and qpainter.h to interface.cpp
Code:
#include <qpainter.h>

then I have removed -lQtXml -lQtCore -lQtGui from makefile and finally I ran make command
Code:
make

this is a screenshot of the interface when I press on render button


* mandelbulber2_OSX_interface.jpg (232.92 KB, 1310x874 - viewed 257 times.)
« Last Edit: April 20, 2014, 04:00:52 PM by visual.bermarte » Logged
Buddhi
Fractal Iambus
***
Posts: 895



WWW
« Reply #53 on: April 20, 2014, 08:50:45 PM »

Edit: I forgot to mention that there was another problem: in main() it tried to open a log file, but with empty filename string. You need to call InitSystem() before any call of WriteLog().

I can't find this place in the code. Where it is called before InitSystem()? Is this some initialization of global variable?

using QT 4.8 and version 21, everything is fine on OSX, much easier than GTK

Great to see this. Thanks bermarte for the trial. I will consider your remarks in the code.
Logged

rh73
Forums Freshman
**
Posts: 10


« Reply #54 on: April 20, 2014, 09:57:58 PM »

I can't find this place in the code. Where it is called before InitSystem()? Is this some initialization of global variable?

Umm, good question. It's not there anymore, and after looking through the older revisions of main.cpp it was never there. It's probably that I tried to move the instantiation of QApplication to the top and accidentally moved  WriteLog line before that with it. So I was accusing you of a bug I added myself smiley

I have it working fine with Qt5 now, but as I mentioned per mail, the application startup of Qt5 apps takes VERY long on Windows - 5 seconds before the window shows, every time. Which surprises me, I thought Windows tries to cache dlls which are used frequently, so why do subsequent starts take just as long, too? In comparison Qt4 performs much better in that regard, the same demo applications and mandelbulber2 start almost instantly. But QtCreator seems to do a good job with handling different parallel installs of Qt versions and compilers, so at least that's nice.
« Last Edit: April 20, 2014, 11:57:59 PM by rh73 » Logged
Buddhi
Fractal Iambus
***
Posts: 895



WWW
« Reply #55 on: May 19, 2014, 08:18:53 PM »

Time for some update:
In attached file there is fresh screenshot of Mandelbulber taken from my screen. What you see is the rendering engine is almost rewritten to new Qt application.
What is done:
- containers for parameters work very well
- main rendering engine is almost new. I have created many new C++ classes for it. Now when I look into the code I like it (old code worked very well but was ugly)
- new engine has capability to render regions (many people asked for it, but in old engine it was too difficult to implement)
- during rendering there is refreshed preview for only last rendered lines (faster refresh)
- multi-threading is done using QThread (platform independent)
- all functions are taken (I hope) from Qt lib, so the application still should be multiform. It is to check.
- actually only one fractal formula is implemented (only Mandelbulb). It was enough for render engine testing
- new camera positioning partially implemented (camera - target)

What is important for me I started to understand Qt philosophy. Now it is even possible for me to create new widgets based on inheriting of existing objects and re-implement built-in functions (and then use promotion in QtDesigner). I think this functionality of Qt is the most powerful thing. But to achieve this level of understanding I had to read about 1500 pages of C++ handbooks (Symphony in C++ - Jerzy Grebosz and The C++ Standard Library: A tutorial and reference - Nicolai M. Josuttis) and tons of Qt pages. Learning, learning, and learning.....

Next to do:
1. interface functions
  - camera movements
  - parameters saving/loading
  - image save, loading of textures
2. some more fractal formulas and hybrid fractals (new approach)

It looks like about 30% of work is done.


* Mandelbulber_qt_3.jpg (234.99 KB, 1952x1198 - viewed 242 times.)
« Last Edit: May 19, 2014, 08:20:29 PM by Buddhi » Logged

lukesleftleg
Navigator
*****
Posts: 63


« Reply #56 on: May 20, 2014, 01:44:53 PM »

Very exciting news, Mr Buddhi.

I continue to watch with great interest. smiley
Logged
quaz0r
Fractal Molossus
**
Posts: 652



« Reply #57 on: May 20, 2014, 07:34:09 PM »

sounds nice
Logged
geomagnet
Alien
***
Posts: 21


« Reply #58 on: June 10, 2014, 02:39:04 AM »

Thank you so much for all your hard work.  I've enjoyed using your program and watching it grow into this beautiful product.
I look forward to all your future releases. 
Logged
Buddhi
Fractal Iambus
***
Posts: 895



WWW
« Reply #59 on: June 15, 2014, 11:05:49 AM »

Update:
Camera movements are done. It took much more time than I assumed, but now it should cover requirements from all users. In attached image there is navigation panel.
- there is possible to move camera and target separately
- there are three modes for movements:
    - fixed camera-target distance: camera and target will move together. Camera will not rotate during movement
    - move camera: only camera will be moved, and will rotate to look at the fixed target
    - move target: target will be moved, camera will stay in fixed position and rotate to look at target
- there is slider to change distance between camera and target (depending on mode, will move camera or target)
- all movements can by by constant step or by step depending on distance to the fractal surface
- rotation are in two modes:
    - rotate camera: target will be rotated around the camera
    - rotate target: camera will rotate around the target
- yaw/pitch/roll can be controlled in two modes:
    - fixed roll angle: all movements/rotations will not roll the camera
    - straight rotation: rotation behavior will not depend in polar coordinates, especially when pith is almost 90 degrees.

One of most important things is camera will behave properly in animation mode in every configuration. In old version there was a problem when pitch was close to 90 degrees or some angles pass 180 or 360 degrees. In actual camera engine there is used internally the vector which indicates top direction of the camera. In animation this vector will be morphed and controls camera roll. Other rotations will be controlled by configuration of the camera against the target. There was a lot of algebra to do this, but I like how it behave.

other things done:
- image view scaling and re-sizing with window re-size
- added status and progress bar with rendering time calculation
 
Next to do:
- camera movements by mouse clicks
- optimize rendering engine (it's about 30% percent slower than in old version) - I have to find where is the bottleneck.


* Mandelbulber_qt_navigation.png (44.71 KB, 214x839 - viewed 194 times.)
Logged

Pages: 1 2 3 [4] 5 6   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
"Alien Interface" revisited Images Showcase (Rate My Fractal) David Makin 3 3078 Last post January 26, 2007, 01:08:39 PM
by David Makin
Mandelbulber 0.80 Mandelbulber Buddhi 5 8214 Last post June 27, 2010, 05:30:54 PM
by knighty
(1) Hello, (2) Sad interface (3) my book and web site Meet & Greet Ventrella 6 3035 Last post October 08, 2012, 02:14:53 AM
by M Benesi
Chaotica 1.5 animation features and user interface improvements Chaotica lycium 0 2023 Last post January 07, 2014, 05:45:26 AM
by lycium
Mandelbrot symbolics / combinatorics web interface Mandelbrot & Julia Set claude 4 2613 Last post March 15, 2016, 09:35:06 PM
by claude

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.184 seconds with 26 queries. (Pretty URLs adds 0.009s, 2q)