大象无形11.4.4 实战:创建新的渲染代理 笔记

遇到问题如下:

书中的代码复制粘贴后,其中实例化的一行出错。
在这里插入图片描述

严重性 代码 说明 项目 文件 行 禁止显示状态 详细说明
错误(活动) E0322 不允许使用抽象类类型 “FTestCustomComponentSceneProxy” 的对象: MyProjectCPP C:\Users\Administrator\Documents\Unreal Projects\MyProjectCPP 4.25\Source\MyProjectCPP\Test\TestCustomComponent.cpp 46 纯虚拟 函数 “FPrimitiveSceneProxy::GetTypeHash” 没有强制替代项

解决方法:

参考链接:没有躲过的坑–抽象类不能实例化对象(但是你明明定义的不是抽象类)江南-一苇渡江
思路:

  1. 这篇文章提到了不能实例化的原因就是虚函数没有全部实现。报错的字面意思,GetTypeHash函数没有实现。
  2. 找到这个函数的位置,来自继承的FPrimitiveSceneProxy。 在这里插入图片描述
  3. 在正确的位置实现这个函数:
    借鉴另一个虚函数的实现方法和放置位置 在这里插入图片描述
	virtual SIZE_T GetTypeHash(void) const override
	{
		return SIZE_T();
	}

结果:

编译,拖一个Actor到场景中,添加已有代码实现的组件
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介   本书从实践的角度出发,详细介绍3D游戏开发的高级技术,并具体描述了一个游戏引擎的构建过程。全书着重讨论三个主题:游戏开发的一般过程;实时渲染过程;角色动画。所有主题均围绕一个具体的游戏开发系统Fly3D SDK2.0加以介绍。   本书旨在为当今的三维游戏引擎技术提供一个综合的解决方案,使读者尽快地进入开发者角色,了解整个游戏的开发过程并初步具备游戏引擎开发能力。   本书适合作为高等院校相关专业的教学参考书,同时可供相关技术人员和游戏开发人员阅读。 编辑推荐   本书从实践的角度出发,详细介绍3D游戏开发的高级技术,并具体描述了一个游戏引擎的构建过程。全书着重讨论三个主题:游戏开发的一般过程;实时渲染过程;角色动画。所有主题均围绕一个具体的游戏开发系统Fly3D SDK2.0加以介绍。   本书旨在为当今的三维游戏引擎技术提供一个综合的解决方案,使读者尽快地进入开发者角色,了解整个游戏的开发过程并初步具备游戏引擎开发能力。   本书适合作为高等院校相关专业的教学参考书,同时可供相关技术人员和游戏开发人员阅读。 作者简介   Alan Watt 英国谢菲尔德大学计算机科学系讲师,是该校计算机图表学研究室主任,曾经编写过多本优秀著作,包括《3D计算机图形学》和《The Computer Lmage》。 Fabio Policarpo 工作在里约热内卢的软件开发者,他是Paralelo计算机公司的创始人,目前正致力于三维动作多玩家游戏的研究。 目录 出版者的话 专家指导委员会 译者序 前言 第一部分 高级游戏系统剖析 第1章 高级游戏系统剖析I:构造过程和静态光照 1.1 数据结构 1.1.1 顶点 1.1.2 面 1.1.3 包围盒 1.2 构造过程 1.2.1 从场景几何中创建BSP树 1.2.2 路径规划的凸体和PVS计算 1.2.3 处理复杂的地形 1.2.4 BSP叶节点中的面 1.2.5 寻找叶凸体 1.2.6 凸体和伪人口 1.2.7 潜在可视集 1.3 光照贴图的构造 1.3.1 生成光照贴图的坐标 1.3.2 光照贴图的打包 1.3.3 对光照贴图的解释 1.4 BSP管理 1.5 高级静态光照——辐射度 附录1.1 构造实践 附录1.2 辐射度理论基础 第2章 高级游戏系统剖析Ⅱ:实时处理 2.1 视见和BSP 2.1.1 生成视见约束体的面 2.1.2 远近裁剪面和视见约束体 2.2 照相机控制 2.3 使用BSP的基本碰撞检测和反弹 2.3.1 碰撞和BSP遍历 2.3.2 粒子,场景检测和反弹 2.4 特殊的碰撞检测和反弹 2.4.1 AABB的定义 2.4.2 AABB类的定义和静态成员的定义 2.4.3 碰撞检测和碰撞反弹 2.4.4 使用AABB的伪碰撞反弹 2.4.5 使用AABB的碰撞检测 2.4.6 AABB顶点与场景面相交 2.4.7 场景顶点与AABB面相交 2。4.8 AABB边与场景边相交 2.4.9 更精确的碰撞检测 2.4.10 使用碰撞阈值 2.5 基本的路径规划 附录2.1 实时处理的演示 第3章 高级游戏系统剖析Ⅲ:软件设计与应用编程 3.1 应用的种类 3.1.1 插件 3.1.2 前端 3.1.3 工具 3.2 Fly3D引擎体系结构 3.2.1 FlyMath 3.2.2 FlyDirectX 3.2.3 FlyRender 3.2.4 FlyEngine 附录3.1 编写一个插件 第二部分 实时渲染 第4章 实时渲染 4.1 简介 4.2 顶点、像素和贴图 4.2.1 基本的逐像素着色 4.2.2 着色和坐标空间 4.2.3 25年来主流的插值着色方法和颜色贴图 4.2.4 标量表示 4.3 因式分解法 4.3.1 使用因式分解着色模型的逐像素着色——各向同性模型 4.3.2 使用因式分解着色模型的逐像素着色——各向异性模型 4.4 BRDF和真实材质 4.5 使用BRDF进行逐像素着色 4.6 环境贴图参数化 4.6.1 环境贴图参数化:立方映射 4.6.2 环境贴图参数化:球面映射 4.6.3 环境贴图参数化:对偶抛物面贴图 4.6.4 环境贴图——可比点 4.6.5 立方贴图和向量规范化 4.7 实现BRDF:可分离的近似 4.8 着色语言和着色器 4.8.1 着色语言:简单的历史回顾 4.8.2 RenderMan着色语言 4.8.3 实时渲染的着色语言 第5章 实时渲染:实践 5.1 基本着色器 5.1.1 渲染状态 5.1.2 着色器排序 5.1.3 着色器类的实现 5.2 渲染状态 5.2.1 全局设定 5.2.2 局部设定 5.3 着色器实例 5.3.1 环境映射和铬映射效果——玻璃、金属和铬 5.3.2 移动发光告示牌

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值