Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 通过PySide2在Python中的Qt3D中前后设置CullFace_Python 3.x_Qt5_Pyqt5_Qt3d_Pyside2 - Fatal编程技术网

Python 3.x 通过PySide2在Python中的Qt3D中前后设置CullFace

Python 3.x 通过PySide2在Python中的Qt3D中前后设置CullFace,python-3.x,qt5,pyqt5,qt3d,pyside2,Python 3.x,Qt5,Pyqt5,Qt3d,Pyside2,我想将QCullFace设置为前后,这就是我写这篇文章的原因: 从PySide2.Qt3DRender导入Qt3DRender 消隐面=Qt3DRender.QCullFace cull_face.setModeQt3DRender.QCullFace.FrontAndBack render_pass=Qt3DRender.QRenderPass render_pass.addRenderStatecull_面 上面的代码应该全局设置CullFace。但事实并非如此。我做错了什么?< p>我假定

我想将QCullFace设置为前后,这就是我写这篇文章的原因:

从PySide2.Qt3DRender导入Qt3DRender 消隐面=Qt3DRender.QCullFace cull_face.setModeQt3DRender.QCullFace.FrontAndBack render_pass=Qt3DRender.QRenderPass render_pass.addRenderStatecull_面
上面的代码应该全局设置CullFace。但事实并非如此。我做错了什么?

< p>我假定Python绑定不会改变Qt在C++中的工作方式。

因此,除非渲染到屏幕外或您自己的曲面,否则您可能在某处有一个Qt3DWindow。如果希望cull面处于活动状态,则必须通过调用renderSettings从窗口检索QRenderSettings。渲染设置保留活动帧图,即,如果希望任何渲染状态或与帧图相关的任何其他内容处于活动状态,则它必须是渲染设置保留为活动帧图的节点的子节点。通过调用activeFramegraph或setActiveFramegraphQFramegraphNode*,可以在渲染设置上获取和设置活动framegraph

使用QRenderPass有什么原因吗?因为如果是,则必须创建QRenderPassFilter,以便将其设置为渲染设置上的活动帧图QRenderPass不会继承QFramegraphNode。这样可以从渲染过程中过滤掉某些对象

但是,由于您希望剔除面在全局范围内处于活动状态,我建议您使用QRenderStateSet并将QCullFace添加到其中。然后,可以在3D窗口的渲染设置中将渲染状态集设置为活动帧图