Thanks to Antti, this is already fixed in the 5.8 branch so will be part
of Qt 5.8.1.
Cheers,
Sean
On 20/12/2016 12:48, Philip Schuchardt wrote:
Awesome! Thanks Juan.
On Mon, Dec 19, 2016 at 7:18 PM Juan Jose Casafranca <[email protected]
<mailto:[email protected]>> wrote:
Hi,
I've began to look a the QRenderCapture code to implement the
QBufferCapture node and I've found that the problem that Philip
described may happen because of the render target format used.
The debugger says that the render target is a RGB8_UNorm which is
not considered in the big switch case statement in
graphicshelpers/graphicscontext.cpp file (line 1624).
I will file a jira with this info
2016-12-12 15:43 GMT+01:00 Philip Schuchardt <[email protected]
<mailto:[email protected]>>:
I'm using Scene3D in my QML application. Qt Quick is in charge.
The default format returns -1, -1, -1, and -1 for alpha, red,
green, and blue. I'm on macOS 10.12.1 with an AMD Radeon HD
6770M 1024 MB.
On Fri, Dec 9, 2016 at 3:26 AM Sean Harmer <[email protected]
<mailto:[email protected]>> wrote:
On 09/12/2016 00:28, Philip Schuchardt wrote:
> I figured out why it wasn't working for me. After using
the qt3d debug
> build, I noticed that Qt3D was asserting:
>
> ASSERT failure in Q_UNREACHABLE(): "Q_UNREACHABLE was
reached", file
> graphicshelpers/graphicscontext.cpp, line 1684
>
>
> Basically, it was telling me that it had an invalid
framebuffer type. I
> had multisampling enabled which would prevent direct reads
from a
> framebuffer. Multisampled framebuffers need to be copied
to a texture
> before reading to main memory. After disabling
multisampling, it still
> wasn't working. Then I forced a new default format with
QSurfaceFormat:
Right. We could handle this multisample resolving internally
so please
do file a bug report for this. I also want to add a
framebuffer blit
framegraph node for 5.9 too as this has other uses outside
of RenderCapture.
>
>
> QSurfaceFormatformat=QSurfaceFormat::defaultFormat();
>
> format.setAlphaBufferSize(8);
>
> format.setRedBufferSize(8);
>
> format.setGreenBufferSize(8);
>
> format.setBlueBufferSize(8);
>
> QSurfaceFormat::setDefaultFormat(format);
>
>
> Then it worked! I tried re-enabling multisampling which
caused it not to
> work agian.
>
>
> I think there's currently two bugs for RenderCapture:
>
> 1. The default QSurfaceFormat doesn't work with
RenderCapture (on macOS
> 10.12.1)
What setup are you using? Qt QUick in charge + a Scene3D or
pure QT 3D
application? What is the default format you get in this case?
>
> 2. The multisampling (using Scene3D) doesn't work with
RenderCapture
>
>
> Sean, should I make a bug report?
Yes please :)
Thanks for investigating!
Sean
>
>
> Thanks,
>
> Phi|ip
>
>
> On Sat, Dec 3, 2016 at 4:16 PM Philip Schuchardt
<[email protected] <mailto:[email protected]>
> <mailto:[email protected] <mailto:[email protected]>>>
wrote:
>
> I prototyped a framegraph using 5.8-beta and
RenderCapture, but was
> unable to get anything to save to disk. It creates a
> RenderCaptureReply. The reply gets completed but the
image is null
> and nothing is saved. I'm currently saving to
"~/testShot.png". Any
> ideas why it's not working? I probably set up the
framegraph wrong
> or something. I would be really helpful if there was
an example in
> the documentation.
>
> Here's my test example. You can run through Qt
Creators -> Tools ->
> External -> Qt Quickt - > qmlscene
>
https://dl.dropboxusercontent.com/u/13470469/Renderer3D.qml
>
> On Mon, Nov 28, 2016 at 11:33 AM Philip Schuchardt
> <[email protected] <mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>> wrote:
>
> Cool! I didn't see RenderCapture class in 5.7. I
glad it was
> added in 5.8. I'll try to prototype something with
custom
> framegraph in 5.8.
>
> Phi|ip
>
> On Mon, Nov 28, 2016 at 6:48 AM Juan Jose Casafranca
> <[email protected] <mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>> wrote:
>
> I will have a better look to how the aspect
translates the
> framegraph node to opengl commands.
>
> Thanks!
>
> 2016-11-28 12:42 GMT+01:00 Sean Harmer
<[email protected] <mailto:[email protected]>
> <mailto:[email protected]
<mailto:[email protected]>>>:
>
> On Monday 28 November 2016 12:34:01 Juan
Jose Casafranca
> wrote:
> > How does QRenderCapture works? When a
capture is requested it sets a flags
> > and when generating the view, it creates
a job that will render the image?
> > I imagine the QRenderCapture in the
framegraph is important. If you put it
> > right after the ClearBuffers, it will
render an empty image, wont it?
>
> I suspect the issue here is not being
clear on the frame
> graph. Each leaf node
> of the frame graph results in a phase of
rendering. The
> RenderCapture node
> essentially gets translated into a
glReadPixels call for
> that rendering phase.
> If the sub-tree containing the
ClearBuffers and
> RenderCapture also does some
> drawing (i.e. doesn't have a NoDraw node) the
> glReadPixels will happen after
> the draw calls so should read back the
framebuffer that
> has just been drawn
> to.
>
> Hope this helps,
>
> Sean
>
> >
> > 2016-11-28 12:11 GMT+01:00 Sean Harmer
> <[email protected]
<mailto:[email protected]> <mailto:[email protected]
<mailto:[email protected]>>>:
> > > On Monday 28 November 2016 11:48:14
Harald Vistnes
> wrote:
> > > > Hi,
> > > >
> > > > yes, this would be a most welcome
feature.
> > > >
> > > > Concerning Jira, it has already been
requested
> multiple times
> > > >
https://bugreports.qt.io/browse/QTBUG-52074
> > > >
https://bugreports.qt.io/browse/QTBUG-52136
> > >
> > > I meant for reading back from a buffer. :)
> > >
> > > > I tried to render into a FBO and
read back the
> results, but had some
> > > > problems. I attached some test code
in the Jira
> > > >
>
https://bugreports.qt.io/secure/attachment/57353/offscreenrenderer.zip
> > >
> > > but
> > >
> > > > never got any feedback. If someone
will look into
> this it would be
> > > > great.
> > >
> > > I'll see if someone can take a look. I
may have some
> time next week if
> > > nobody
> > > else can.
> > >
> > > Cheers,
> > >
> > > Sean
> > >
> > > > Thanks,
> > > > Harald
> > > >
> > > > 2016-11-28 11:41 GMT+01:00 Sean Harmer
> <[email protected]
<mailto:[email protected]> <mailto:[email protected]
<mailto:[email protected]>>>:
> > > > > On Monday 28 November 2016
11:40:10 Juan Jose
> Casafranca wrote:
> > > > > > Oh thanks!
> > > > > >
> > > > > > Yes, in fact my first thought
was to use it
> for a compute shader. It
> > > > >
> > > > > would
> > > > >
> > > > > > make Qt3D a great tool not only
for rendering
> but also for GPGPU.
> > > > > > I will try to have a look on it
during the
> Christmas vacations :-)
> > > > >
> > > > > Awesome! Drop by #qt-3d on irc if
you need anything.
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Sean
> > > > >
> > > > > > 2016-11-28 11:31 GMT+01:00 Sean
Harmer
> <[email protected]
<mailto:[email protected]> <mailto:[email protected]
<mailto:[email protected]>>>:
> > > > > > > Hi,
> > > > > > >
> > > > > > > On Monday 28 November 2016
11:22:30 Juan
> Jose Casafranca wrote:
> > > > > > > > Hi Sean,
> > > > > > > >
> > > > > > > > is there any example on how
to do that? I
> tried to use a
> > > > >
> > > > > QRenderCapture
> > > > >
> > > > > > > but
> > > > > > >
> > > > > > > > I failed two weeks ago.
> > > > > > >
> > > > > > >
>
http://code.qt.io/cgit/qt/qt3d.git/tree/tests/manual/
> > >
> > > rendercapture-qml
> > >
> > > > > > >
>
http://code.qt.io/cgit/qt/qt3d.git/tree/tests/manual/
> > >
> > > rendercapture-cpp
> > >
> > > > > > > > Is there any way to access
the buffers
> content data using a
> > >
> > > similar
> > >
> > > > > > > > approach to the
QRenderCapture method?
> > > > > > > > For example, in an animation
system, use a
> graphics pipeline to
> > > > >
> > > > > compute
> > > > >
> > > > > > > the
> > > > > > >
> > > > > > > > deformed mesh and then get
the new vertex
> positions for export.
> > > > > > >
> > > > > > > Right, that is missing at the
moment. It
> would be very useful to
> > > > > > > be
> > > > >
> > > > > able
> > > > >
> > > > > > > to do
> > > > > > > this to read back the results
of a compute
> shader too for e.g.. If
> > >
> > > you
> > >
> > > > > > > wish to
> > > > > > > have a go at adding such a
feature analogous
> the the RenderCapture
> > > > > > > node
> > > > > > > then
> > > > > > > that would be awesome. If not,
we can try to
> do it for 5.9 but the
> > > > >
> > > > > feature
> > > > >
> > > > > > > freeze is approaching. In
either case could
> you file a JIRA for it
> > > > >
> > > > > please?
> > > > >
> > > > > > > Thanks!
> > > > > > >
> > > > > > > Sean
> > > > > > >
> > > > > > > > Cheers
> > > > > > > > Juan José
> > > > > > > >
> > > > > > > > 2016-11-28 11:13 GMT+01:00
Sean Harmer
> <[email protected]
<mailto:[email protected]> <mailto:[email protected]
<mailto:[email protected]>>>:
> > > > > > > > > On Monday 28 November 2016
02:23:59
> Philip Schuchardt wrote:
> > > > > > > > > > I'm trying to port my
OpenGL code (
> > >
> > > https://github.com/Cavewhere/
> > >
> > > > > > > > > cavewhere/)
> > > > > > > > >
> > > > > > > > > > to use Qt3D. I think
Qt3D will allow
> me to quickly improve
> > >
> > > and
> > >
> > > > > > > modify my
> > > > > > >
> > > > > > > > > > rendering pipeline. The one
> requirement I need is to be able
> > >
> > > to
> > >
> > > > > > > render
> > > > > > >
> > > > > > > > > to a
> > > > > > > > >
> > > > > > > > > > QImage and save it to
disk. Currently,
> have a method that
> > > > > > > > > > renders
> > > > > > > > > > high-resolution images
from OpenGL. I
> do this by tiling a
> > > > >
> > > > > projection
> > > > >
> > > > > > > > > matrix
> > > > > > > > >
> > > > > > > > > > and rendering the scene
one tile at a
> time and combining
> > > > > > > > > > them
> > > > >
> > > > > into
> > > > >
> > > > > > > > > > on
> > > > > > > > >
> > > > > > > > > huge
> > > > > > > > >
> > > > > > > > > > PNG. The problem is I'm
not sure how
> to render Qt3D pipeline
> > >
> > > to
> > >
> > > > > > > > > > a
> > > > > > > > > > texture
> > > > > > > > > > and then download if
from the GPU into
> memory in Qt3D. Is
> > >
> > > there
> > >
> > > > > an
> > > > >
> > > > > > > easy
> > > > > > >
> > > > > > > > > way
> > > > > > > > >
> > > > > > > > > > to do that? Do I need to
create my own
> Aspect?
> > > > > > > > >
> > > > > > > > > Hi, you can use a custom
frame graph
> that includes a
> > > > > > > > > QRenderCapture
> > > > > > >
> > > > > > > node
> > > > > > >
> > > > > > > > > (coming in Qt 5.8). If you
combine this
> with a camera and some
> > > > >
> > > > > logic
> > > > >
> > > > > > > for
> > > > > > >
> > > > > > > > > tiling the frustum
(NodeInstantiator)
> you should be able to
> > > > >
> > > > > replicate
> > > > >
> > > > > > > your
> > > > > > >
> > > > > > > > > existing logic. I'd like
to get
> something like this wrapped up
> > > > >
> > > > > along
> > > > >
> > > > > > > with
> > > > > > >
> > > > > > > > > Qt
> > > > > > > > > 5.9.
> > > > > > > > >
> > > > > > > > > > Also, many parts of the
documentation
> seem to be missing,
> > >
> > > very
> > >
> > > > > > > > > > light,
> > > > > > > > > > and
> > > > > > > > > > not up to the same
standard as the
> rest of Qt's
> > >
> > > documentation.
> > >
> > > > > > > > > Yes this is something I
really want to
> have a push on in the
> > >
> > > near
> > >
> > > > > > > future.
> > > > > > >
> > > > > > > > > Cheers,
> > > > > > > > >
> > > > > > > > > Sean
> > > > > > > > >
> > > > > > > > > > Perhaps,
> > > > > > > > > > I'm just missing
something from the
> undocumented
> > >
> > > documentation.
> > >
> > > > > > > > > > Thanks,
> > > > > > > > > > Phi|ip
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Dr Sean Harmer |
[email protected] <mailto:[email protected]>
> <mailto:[email protected]
<mailto:[email protected]>> | Managing Director UK
> > > > > > > > > KDAB (UK) Ltd, a KDAB
Group company
> > > > > > > > > Tel. +44 (0)1625 809908
<tel:+44%201625%20809908>
> <tel:%2B44%20%280%291625%20809908>; Sweden
(HQ)
> +46-563-540090
<tel:+46%20563%2054%2000%2090> <tel:%2B46-563-540090>
> > > > > > > > > Mobile: +44 (0)7545 140604
<tel:+44%207545%20140604>
> <tel:%2B44%20%280%297545%20140604>
> > > > > > > > > KDAB - Qt Experts
> > > > > > > > >
>
_______________________________________________
> > > > > > > > > Interest mailing list
> > > > > > > > > [email protected]
<mailto:[email protected]>
> <mailto:[email protected]
<mailto:[email protected]>>
> > > > > > > > >
>
http://lists.qt-project.org/mailman/listinfo/interest
> > > > > > >
> > > > > > > --
> > > > > > > Dr Sean Harmer |
[email protected] <mailto:[email protected]>
> <mailto:[email protected]
<mailto:[email protected]>> | Managing Director UK
> > > > > > > KDAB (UK) Ltd, a KDAB Group
company
> > > > > > > Tel. +44 (0)1625 809908
<tel:+44%201625%20809908>
> <tel:%2B44%20%280%291625%20809908>; Sweden
(HQ)
> +46-563-540090
<tel:+46%20563%2054%2000%2090> <tel:%2B46-563-540090>
> > > > > > > Mobile: +44 (0)7545 140604
<tel:+44%207545%20140604>
> <tel:%2B44%20%280%297545%20140604>
> > > > > > > KDAB - Qt Experts
> > > > >
> > > > > --
> > > > > Dr Sean Harmer |
[email protected] <mailto:[email protected]>
> <mailto:[email protected]
<mailto:[email protected]>> | Managing Director UK
> > > > > KDAB (UK) Ltd, a KDAB Group company
> > > > > Tel. +44 (0)1625 809908
<tel:+44%201625%20809908>
> <tel:%2B44%20%280%291625%20809908>; Sweden
(HQ)
> +46-563-540090
<tel:+46%20563%2054%2000%2090> <tel:%2B46-563-540090>
> > > > > Mobile: +44 (0)7545 140604
<tel:+44%207545%20140604>
> <tel:%2B44%20%280%297545%20140604>
> > > > > KDAB - Qt Experts
> > > > >
_______________________________________________
> > > > > Interest mailing list
> > > > > [email protected]
<mailto:[email protected]>
> <mailto:[email protected]
<mailto:[email protected]>>
> > > > >
>
http://lists.qt-project.org/mailman/listinfo/interest
> > >
> > > --
> > > Dr Sean Harmer | [email protected]
<mailto:[email protected]>
> <mailto:[email protected]
<mailto:[email protected]>> | Managing Director UK
> > > KDAB (UK) Ltd, a KDAB Group company
> > > Tel. +44 (0)1625 809908
<tel:+44%201625%20809908>
> <tel:%2B44%20%280%291625%20809908>; Sweden
(HQ)
> +46-563-540090
<tel:+46%20563%2054%2000%2090> <tel:%2B46-563-540090>
> > > Mobile: +44 (0)7545 140604
<tel:+44%207545%20140604>
> <tel:%2B44%20%280%297545%20140604>
> > > KDAB - Qt Experts
> > >
_______________________________________________
> > > Interest mailing list
> > > [email protected]
<mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>
> > >
http://lists.qt-project.org/mailman/listinfo/interest
>
> --
> Dr Sean Harmer | [email protected]
<mailto:[email protected]>
> <mailto:[email protected]
<mailto:[email protected]>> | Managing Director UK
> KDAB (UK) Ltd, a KDAB Group company
> Tel. +44 (0)1625 809908
<tel:+44%201625%20809908> <tel:+44%201625%20809908>;
> Sweden (HQ) +46-563-540090
<tel:+46%20563%2054%2000%2090> <tel:+46%20563%2054%2000%2090>
> Mobile: +44 (0)7545 140604
<tel:+44%207545%20140604> <tel:+44%207545%20140604>
> KDAB - Qt Experts
>
>
> _______________________________________________
> Interest mailing list
> [email protected]
<mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>
>
http://lists.qt-project.org/mailman/listinfo/interest
>
> --
> Phi|ip
>
> --
> Phi|ip
>
> --
> Phi|ip
>
>
> _______________________________________________
> Interest mailing list
> [email protected] <mailto:[email protected]>
> http://lists.qt-project.org/mailman/listinfo/interest
>
--
Dr Sean Harmer | [email protected]
<mailto:[email protected]> | Managing Director UK
KDAB (UK) Ltd, a KDAB Group company
Tel. +44 (0)1625 809908 <tel:+44%201625%20809908>; Sweden
(HQ) +46-563-540090 <tel:+46%20563%2054%2000%2090>
Mobile: +44 (0)7545 140604 <tel:+44%207545%20140604>
KDAB - Qt Experts
_______________________________________________
Interest mailing list
[email protected] <mailto:[email protected]>
http://lists.qt-project.org/mailman/listinfo/interest
--
Phi|ip
_______________________________________________
Interest mailing list
[email protected] <mailto:[email protected]>
http://lists.qt-project.org/mailman/listinfo/interest
--
Phi|ip
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest
--
Dr Sean Harmer | [email protected] | Managing Director UK
KDAB (UK) Ltd, a KDAB Group company
Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090
Mobile: +44 (0)7545 140604
KDAB - Qt Experts
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest