1. 2017-05
  2. http://blog.qt.io/blog/2017/05/24/qt3d/
  3. Qt3D future
  4. 5.9
  5. Use Qt Quick or QPainter to render into a texture
  6. Embed Qt Quick into Qt3D, including input handling
  7. Level of Detail support for meshes
  8. Text support - 2D and 3D
  9. Additional materials such as PBR materials
  10. others
  11. Generating and filling buffers out of QAbstractItemModels
  12. Billboards - camera facing entities
  13. Particle systems
  14. VR support
  15. new aspects:
  16. 碰撞检测
  17. 动画:关键帧动画;骨骼动画;Morph target animation; Removes animation workload from main thread
  18. 物理:刚体/柔体物理模拟
  19. AI:
  20. 三维位置音效:如喇叭,越近越响
  21. 工具
  22. 设计时工具:场景设计器
  23. Qt 3D Studio
  24. 编译时工具:资产状态监控
  25. More
  26. 贴图控制
  27. yizhi算法(OpenGL
  28. 各种3d模型的加载
  29.  
  30. 2d ui嵌入到 3d里面用Scene2D
  31. Scene2D {
  32. id: qmlTexture
  33. output: RenderTargetOutput {
  34. attachmentPoint: RenderTargetOutput.Color0
  35. texture: Texture2D { id: offscreenTexture }
  36. }
  37. entities: [ cube ]
  38. Item {
  39. id: customQtQuickStuff
  40. }
  41. }
  42.  
  43. 纹理加载器
  44. TextureLoader {
  45. source: "qrc:/assets/textures/pbr-default/pbr-default-metallic.png"
  46. minificationFilter: Texture.LinearMipMapLinear
  47. magnificationFilter: Texture.Linear
  48. wrapMode {
  49. x: WrapMode.ClampToEdge
  50. y: WrapMode.ClampToEdge
  51. }
  52. generateMipMaps: true
  53. }
  54.  
  55. 新增材质
  56. 粗糙金属材质
  57. MetalRoughMaterial
  58. 粗糙金属纹理材质
  59. TexturedMetalRoughMaterial {
  60. baseColor: TextureLoader {
  61. format: Texture.SRGB8_Alpha8
  62. source: "qrc:/assets/powerup/basecolor.png"
  63. }
  64. metalness: TextureLoader { source: "qrc:/assets/powerup/metalness.png" }
  65. roughness: TextureLoader { source: "qrc:/assets/powerup/roughness.png" }
  66. normal: TextureLoader { source: "qrc:/assets/powerup/normal.png" }
  67. ambientOcclusion: TextureLoader { source: "qrc:/assets/powerup/ambientocclusion.png" }
  68. }
  69.  
  70. 新增环境光
  71. EnvironmentLight {
  72. id: envLight
  73. irradiance: TextureLoader {
  74. source: "qrc:/assets/envmaps/wobbly-bridge/wobbly_bridge_4k" + _envmapFormat + "_cube_irradiance.dds"
  75.  
  76. minificationFilter: Texture.LinearMipMapLinear
  77. magnificationFilter: Texture.Linear
  78. wrapMode {
  79. x: WrapMode.ClampToEdge
  80. y: WrapMode.ClampToEdge
  81. }
  82. generateMipMaps: false
  83. }
  84. specular: TextureLoader {
  85. source: "qrc:/assets/envmaps/wobbly-bridge/wobbly_bridge_4k" + _envmapFormat + "_cube_specular.dds"
  86.  
  87. minificationFilter: Texture.LinearMipMapLinear
  88. magnificationFilter: Texture.Linear
  89. wrapMode {
  90. x: WrapMode.ClampToEdge
  91. y: WrapMode.ClampToEdge
  92. }
  93. generateMipMaps: false
  94. }
  95. }
  96.  
  97. 天空盒实体
  98. SkyboxEntity {
  99. baseName: "qrc:/assets/envmaps/wobbly-bridge/wobbly_bridge_4k" + _envmapFormat + "_cube_radiance"
  100. extension: ".dds"
  101. gammaCorrect: true
  102. }
  103.  
  104. 相机增加曝光度属性
  105. Camera {
  106. id: mainCamera
  107. position: Qt.vector3d(-10, 0, 0)
  108. viewCenter: Qt.vector3d(0, 0, 0)
  109. exposure: 1.4 // 曝光度
  110. }
  111.  
  112. 加载预设的动画
  113. import Qt3D.Animation 2.9
  114. ClipAnimator {
  115. id: animator
  116. loops: 3
  117. clip: AnimationClipLoader { source: "qrc:/jumpinganimation.json" }
  118. channelMapper: ChannelMapper {
  119. mappings: [
  120. ChannelMapping { channelName: "Location"; target: cubeTransform; property: "translation" },
  121. ChannelMapping { channelName: "Rotation"; target: cubeTransform; property: "rotation" },
  122. ChannelMapping { channelName: "Scale"; target: cubeTransform; property: "scale3D" }
  123. ]
  124. }
  125. }
  126. 对象选择器
  127. ObjectPicker { onClicked: animator.running = true;}
  128.  
  129. 根据远近来动态调整场景(volumeOverride
  130. LevelOfDetail
  131. Entity {
  132. components: [
  133. CylinderMesh {
  134. radius: 1
  135. length: 3
  136. rings: 2
  137. slices: sliceValues[lod.currentIndex]
  138. property var sliceValues: [20, 10, 6, 4]
  139. },
  140. Transform {
  141. rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 45)
  142. },
  143. PhongMaterial {
  144. diffuse: "lightgreen"
  145. },
  146. LevelOfDetail {
  147. id: lod
  148. camera: camera
  149. thresholds: [1000, 600, 300, 180]
  150. thresholdType: LevelOfDetail.ProjectedScreenPixelSizeThreshold
  151. volumeOverride: lod.createBoundingSphere(Qt.vector3d(0, 0, 0), 2.0)
  152. }
  153. ]
  154. }
  155. LevelOfDetailSwitch
  156. Entity {
  157. components: [
  158. LevelOfDetailSwitch {
  159. camera: camera
  160. thresholds: [20, 35, 50]
  161. thresholdType: LevelOfDetail.DistanceToCameraThreshold
  162. }
  163. ]
  164. HighDetailEntity { enabled: false }
  165. MediumDetailEntity { enabled: false }
  166. LowDetailEntity { enabled: false }
  167. }
  168. LevelOfDetailLoader
  169. LevelOfDetailLoader {
  170. id: lodLoader
  171. camera: camera
  172. thresholds: [20, 35, 50]
  173. thresholdType: LevelOfDetail.DistanceToCameraThreshold
  174. volumeOverride: lodLoader.createBoundingSphere(Qt.vector3d(0, 0, 0), -1)
  175. sources: ["qrc:/HighDetailEntity.qml", "qrc:/MediumDetailEntity.qml", "qrc:/LowDetailEntity.qml"]
  176. }
  177.  
  178. 渲染文本
  179. Text2DEntity
  180. Text2DEntity {
  181. id: text
  182. text: "Hello World"
  183. width: 20
  184. height: 10
  185. }
  186. ExtrudedTextMesh
  187. auto *text = new Qt3DCore::QEntity(root);
  188. auto *textTransform = new Qt3DCore::QTransform();
  189. auto *textMesh = new Qt3DExtras::QExtrudedTextMesh();
  190. textMesh->setDepth(.45f);
  191. QFont font(family, 32, -1, false);
  192. textMesh->setFont(font);
  193. textMesh->setText(QString(family));
  194. auto *textMaterial = new Qt3DExtras::QPhongMaterial(root);
  195. textMaterial->setDiffuse(QColor(111, 150, 255));
  196. text->addComponent(textTransform);
  197. text->addComponent(textMesh);
  198. text->addComponent(textMaterial);

Qt3D 5.9 and future的更多相关文章

  1. 面向未来的友好设计:Future Friendly

    一年前翻译了本文的一部分,最近终于翻译完成.虽然此设计思想的提出已经好几年了,但是还是觉得应该在国内推广一下,让大家知道“内容策略”,“移动优先”,“响应式设计”,“原子设计”等设计思想和技术的根源. ...

  2. 线程笔记:Future模式

    线程技术可以让我们的程序同时做多件事情,线程的工作模式有很多,常见的一种模式就是处理网站的并发,今天我来说说线程另一种很常见的模式,这个模式和前端里的ajax类似:浏览器一个主线程执行javascri ...

  3. 第二篇 Entity Framework Plus 之 Query Future

    从性能的角度出发,能够减少 增,删,改,查,跟数据库打交道次数,肯定是对性能会有所提升的(这里单纯是数据库部分). 今天主要怎样减少Entity Framework查询跟数据库打交道的次数,来提高查询 ...

  4. Eclipse调试Android App若选择“Use same device for future launches”就再也无法选择其他设备的问题

    在狂批了某供应商的多媒体控制App有多烂后,夸下海口自己要做一个也是分分钟的事.当然要做好不容易,要超过他们的烂软件还是有信心的.过程中遇到各种坑,其中之一如下 刚开始只使用一个平板进行调试,老是弹出 ...

  5. java Future 接口介绍

    (转自:http://blog.csdn.net/yangyan19870319/article/details/6093481) 在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java ...

  6. java多线程系类:JUC线程池:06之Callable和Future(转)

    概要 本章介绍线程池中的Callable和Future.Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40) 转载请注明出处:http://www.cnblogs.co ...

  7. 架构师养成记--9.future模式讲解

    什么是future模式呢?解释这个概念之前我们先来了解一个场景吧,财务系统的结账功能,这个功能可能是每个月用一次,在这一个月中相关的数据量已经积累得非常大,这一个功能需要调用好几个存储过程来完成.假如 ...

  8. Future和Promise

    Future用于获取异步操作的结果,而Promise则比较抽象,无法直接猜测出其功能. Future Future最早来源于JDK的java.util.concurrent.Future,它用于代表异 ...

  9. Java--Callable与返回值future

    package com; import java.util.concurrent.*; /** * Created by yangyu on 16/11/28. */ /** * Callable a ...

随机推荐

  1. helm-chart6,子chart 和全局值

    chart可以有称为子chart的依赖关系 关于子chart 1,子chart认为是"独立的",即子chart不能明确依赖于其父chart. 2,子chart无法访问其父项的值. ...

  2. IDEA_教你十分钟下载并破解IntelliJ IDEA(2017)(转)

    之前都是用myeclipse,但是最近发现看的很多教学视频都是使用 IntelliJ IDEA,于是决定换个软件开始新的学习征程! 下面讲讲我是如何在十分钟之内安装并破解该软件. 1.首先,我找到了  ...

  3. (63)Wangdao.com第十天_预处理、预解析_函数 上下文对象、参数列表对象

    预解析.预处理 1. 在全局代码执行之前,js 引擎 就会创建一个栈来存储管理所有的 执行上下文对象 2. 在 全局执行上下文 window 确定以后,进行压栈 3. 在 函数执行上下文对象 确定以后 ...

  4. Java常用类库 读书笔记 一

    1.String Buffer 类 String 类所表示的字符串有一个局限就是字符串常量一旦声明则不可改变,只有内存地址的指向可以改变,如果要频繁修改字符串,需要使用String Buffer 类. ...

  5. python hashlib模块 md5加密 sha256加密 sha1加密 sha512加密 sha384加密 MD5加盐

      python hashlib模块   hashlib hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, ...

  6. 【动态规划dp】青蛙的烦恼

    青蛙的烦恼(frog) 原文:https://blog.csdn.net/xyc1719/article/details/79844952 [题目描述] 池塘中有 n 片荷叶恰好围成了一个凸多边形,有 ...

  7. Python 学习笔记6 变量-元组

    我们在上一篇中了解了变量list(列表), 今天我们来介绍下元组.元组是由括号和逗号,组织起来的一个元素的集合.和list不同的是,它其中的元素是不能被修改的,和其他语言中的常量相类似. 需要注意的是 ...

  8. table-一列细分为多列(合并单元格)

    这个是一个很常见的一个表格展示需求,其中最要的就两个属性 rowspan 和 colspan .他们分别就是合并行 与 合并列. 要做的效果是如图下面这个,联系电话就是合并了单元格.这个说法类似于ex ...

  9. 配置环境变量及jdk

    1.配置虚拟机nat默认为yes:cd  /etc/sysconfig/network-scripts/    ll(查看下面ifcfg文件名称)    vim ifcfg-eno16777736(按 ...

  10. Redis可视化工具安装及常用操作操作

    可视化操作工具:RedisDesktopManager 下载地址:http://www.pc6.com/mac/486661.html 直接安装(傻瓜式安装,直接下一步就可以了)(有Mac和windo ...