1.OpenGL自学笔记(五)(纹理映射)
2.UE4源码剖析——光照贴图(LightMap) 之 由烘焙到渲染流程
3.Catlike Coding Custom SRP学习之旅——11Post Processing
4.最新版PTCMS4.3.0小说源码,PTCMS聚合小说+安装教程-青柠资源网
5.免费开源的建站程序大全,不会编程也可以自助搭建网站了哦
OpenGL自学笔记(五)(纹理映射)
纹理映射技术允许在三维物体上应用2D图像,以增添细节。每个顶点可关联一个纹理坐标,从而从图像中选择采样颜色并进行片段插值。hiveserver2源码纹理坐标范围0-1,左下角起始,不依赖分辨率,可为任意浮点值。
为了将纹理映射到物体上,需定义顶点对应的纹理部分,每个顶点关联纹理坐标,用于指定从纹理图像的哪个位置采样颜色,进行片段差值。纹理坐标是模型顶点的数组,OpenGL以此顶点纹理坐标数据查找图像上的像素进行采样。
纹理坐标用于指示从纹理图像的特定部分采样颜色,用于顶点着色器中的片段着色器。通过纹理坐标获取颜色称为采样,且纹理坐标不依赖于分辨率,可以是任意浮点数。
创建纹理对象通常使用glGenTextures函数,绑定至目标(如GL_TEXTURE_2D),并设置环绕方式和过滤方式,管理采样方式。环绕方式默认为四方连续平铺,用于纹理超出范围时的采样。过滤方式包括邻近过滤和线性过滤,分别处理纹理放大或缩小时的像素格问题。
多级渐远纹理(MipMap)用于减少内存浪费,为远距离小物体提供不同分辨率的纹理图像。使用MipMap技术在不同的距离上使用不同分辨率的纹理,减少放大或缩小纹理时的视觉问题。纹理过滤方式包括GL_NEAREST_MIPMAP_NEAREST到GL_LINEAR_MIPMAP_LINEAR,分别对应不同情况下的采样方法。
加载纹理图像通常使用如stb_image.h库,它能够加载多种流行格式的图像。首先添加库至工程,并定义STB_IMAGE_IMPLEMENTATION预处理器宏,使其包含库的函数定义源码。通过stbi_load函数加载图像,然后使用glTexImage2D生成纹理,加载基本级别的纹理图像。若需使用多级渐远纹理,tdxwave源码可手动设置所有不同的图像或使用glGenerateMipmap自动生成。
应用纹理的基本流程涉及创建纹理对象、加载图像、生成纹理,绑定纹理对象至着色器中的采样器。顶点着色器接收顶点数据,包括纹理坐标,片段着色器接收纹理坐标和采样器,使用GLSL的texture函数采样纹理颜色。渲染矩形时,自动绑定纹理至片段着色器采样器,调用绘制函数显示纹理效果。
多个纹理的渲染通过多个纹理单元实现。每个纹理单元有位置值,可通过glUniform1i分配给采样器。激活纹理单元后,绑定纹理至指定单元,允许在片段着色器中使用多个纹理。输出可以对多个纹理进行混合,使用GLSL的mix函数线性插值颜色。最终流程包括创建纹理对象、载入、生成纹理,绑定多个纹理至纹理单元,定义采样器位置,渲染时自动使用纹理进行显示。
在某些情况下,可能会遇到渲染窗口中的报错,这通常与输入法设置有关,切换输入法或检查环境配置即可解决。对于纹理上下颠倒的问题,可通过在加载时反转y轴坐标来调整图像方向,确保纹理正确显示。
UE4源码剖析——光照贴图(LightMap) 之 由烘焙到渲染流程
在离线编辑器阶段,通过构建(Build)按钮启动光照烘焙流程,UE4引擎在构建场景光照、反射球信息、预计算静态网格可见性、构建导航网格、构建HLOD、构建流式贴图等,仅关注光照相关只构建光照(Build Lighting Only)阶段,Lightmass系统负责计算光照,Swarm分布式工具加速并分担计算任务。源码 rem
Swarm初始化并启动烘焙流程,Startup阶段计算光照构建的关卡与灯光信息,统计静态几何体数据并初始化Swarm,Swarm分为协调与代理程序,负责数据导出与任务分配。AmortizedExport阶段进行分摊式数据导出,SwarmKickoff阶段Swarm全面启动,AsynchronousBuilding阶段消费者程序执行任务,完成光照信息计算。AutoApplyingImport阶段根据配置决定是否自动导入烘焙结果,WaitingForImport与ImportRequested阶段等待导入烘焙数据,Import阶段完成数据导入,Finished阶段地图构建完成。
光照贴图合并大图过程,为每个静态几何体独立生成光照贴图后,UE4将多张贴图尽可能合并到一张大贴图中,以优化IO加载与渲染性能。合并算法简单,通过排序、读取最大尺寸限制与重新摆放光照贴图完成。
贴图像素设置与Mipmap生成,合并后的光照贴图设置像素值,为每种类型的光照贴图创建,最终将数据以真实形式存储。贴图包含SkyOcclusionTexture、AOMaterialMaskTexture、ShadowMapTexture与低分辨率系数贴图。
贴图渲染资源合并中,判断不同几何体使用的贴图集合是否一致,优化判断效率。创建FLightmapClusterResourceInput类代表贴图集合,并统计所有集合用于判断几何体是否使用相同贴图集合。
运行时光照贴图传递到Shader流程包括UE4几何体渲染架构窥探、光照信息存储、赋值LCI与生成渲染批次、绑定Shader。FLODInfo类存储光照信息,FMeshBatchElement中设置LCI字段,FBasePassMeshProcessor绑定贴图集合到Shader。在Shader代码中访问LightmapResourceCluster变量访问贴图集合中的光照贴图。
UE4通过Swarm分布式框架、Lightmass光照系统与优化的贴图合并与传递流程,实现了高效、实时的main源码光照计算与渲染。
以上内容详细介绍了UE4引擎中光照贴图从烘焙到渲染的完整流程,包括分布式工具、数据合并、贴图存储与Shader访问,实现了高性能的光照计算与渲染。
Catlike Coding Custom SRP学习之旅——Post Processing
来到了后处理环节,这是渲染管线中关键的一环。后处理技术能够显著提升画面效果,比如色调映射、Bloom、抗锯齿等,都能在后处理中实现。除了改善整体画面效果,后处理还能用于实现描边等美术效果。本文将主要介绍后处理堆栈和Bloom效果等内容。
考虑到篇幅和工作量,本文将从第4章节后半部分开始,以及未来的章节,主要提炼原教程的内容,尽量减少篇幅和实际代码。在我的Github工程中,包含了对源代码的详细注释,需要深入了解代码细节的读者可以查看我的Github工程。对于文章中的错误,欢迎读者批评指正。
以下是原教程链接和我的Github工程:
CatlikeCoding-SRP-Tutorial
我的Github工程
1. 后处理堆栈(Post-FX Stack)
FX,全称是Special Effects,即特殊效果,也称为VFX(Visual Special Effects),即视觉特效。参考维基百科,视觉效果(Visual effects,简称VFX)是在**制作中,在真人动作镜头之外创造或操纵图像的过程。游戏很多技术都会沿用影视技术上的一些技术,比如在色调映射时,可以采用ACES(**色调映射)等。关于Special Effects为什么叫FX,而不是SE,网上似乎只是因为FX谐音Effects,让人不知道从哪吐槽。
通常来说,因为后处理会包含很多不同的效果,如色调映射、市净率源码Bloom、抗锯齿等等,因此后处理在渲染管线中的结构往往是一个堆栈式的结构(URP中也是如此,使用了Post Process Volume)。因此,在本篇中,我们将搭建这样一个堆栈结构,并实现Bloom效果。
1.1 配置资源(Settings Asset)
首先,我们定义PostFXSettings资源,即Scriptable Object,将其作为渲染管线的一项可配置属性,这样便于我们配置不同的后处理堆栈,并可以方便地切换。
1.2 栈对象(Stack Object)
类似于Light和Shadows,我们同样使用一个类来存储包括Camera、ScriptableRenderContext、PostFXSettings,并在其中执行后处理堆栈。
1.3 使用堆栈(Using the Stack)
在进行后处理前,我们首先需要获取当前摄像机画面的标识RenderTargetIdentifier,RenderTargetIdentifier用于标识CommandBuffer的RenderTexture。在这里,我们使用一个简单的int来标识sourceRT。
对于一个后处理效果而言,其实现过程说来很简单,传入一个矩形Mesh(其纹理即当前画面),使用一个Shader渲染该矩形Mesh,将其覆盖回Camera的RT上,我们通过Blit函数来实现该功能。
1.4 强制清除(Forced Clearing)
因为我们将摄像机渲染到了中间RT上,我们虽然会在每帧结束时释放该RT空间,但是基于Unity自身对RT的管理策略,其并不会真正地清除该RT,因此我们在下一帧时,该RT中会留存上一帧的渲染结果,导致了每一帧画面都是在前一帧的结果之上绘制的。
1.5 Gizmos
我们还需要在后处理前后绘制不同的Gizmos部分,这部分略~
1.6 自定义绘制(Custom Drawing)
使用Blit方法绘制后处理,实际上会绘制一个矩形,也就是2个三角面,即6个顶点。但我们完全可以只用一个三角面来绘制整个画面,因此我们使用自定义的绘制函数代替Blit。
1.7 屏蔽部分FX(Don't Always Apply FX)
目前,我们对于所有摄像机都执行了后处理。但是,我们希望只对Game视图和Scene视图摄像机进行后处理,并对不同Scene视图提供单独的开关控制。很简单,通过判断摄像机类型来屏蔽。
1.8 复制(Copying)
接下来,完善下Copy Pass。我们在片元着色器中,对原画面进行采样,并且由于其不存在Mip,我们可以指定mip等级0进行采样,避免一部分性能消耗。
2. 辉光(Bloom)
目前,我们已经实现了后处理堆栈的框架,接下来实现一个Bloom效果。Bloom效果应该非常常见,也是经常被用于美化画面,其主要作用就是让画面亮的区域更亮。
2.1 Bloom金字塔(Bloom Pyramid)
为了实现Bloom效果,我们需要提取画面中亮的像素,并让这些亮的像素影响周围暗的像素。因此,需要首先实现RT的降采样。通过降采样,我们可以很轻易地实现模糊功能。
2.2 配置辉光(Configurable Bloom)
通常来说,我们并不需要降采样到很小的尺寸,因此我们将最大降采样迭代次数和最小尺寸作为可配置选项。
2.3 高斯滤波(Gaussian Filtering)
目前,我们使用双线性滤波来实现降采样,这样的结果会有很多颗粒感,因此我们可以使用高斯滤波,并且使用更大的高斯核函数,通过9x9的高斯滤波加上双线性采样,实现x的模糊效果。
2.4 叠加模糊(Additive Blurring)
对于Bloom的增亮,我们直接将每次降采样后的Pyramid一步步叠加到原RT上,即直接让两张不同尺寸的以相同尺寸采样,叠加颜色,这一步也叫上采样。
2.5 双三次上采样(Bicubic Upsampling)
在上采样过程中,我们使用了双线性采样,这样可能依然会导致块状的模糊效果,因此我们可以增加双三次采样Bicubic Sampling的可选项,以此提供更高质量的上采样。
2.6 半分辨率(Half Resolution)
由于Bloom会渲染多张Pyramid,因此其消耗是比较大的,其实我们完全没必要从初始分辨率开始降采样,从一半的分辨率开始采样的效果也很好。
2.7 阈值(Threshold)
目前,我们对整个RT的每个像素都进行了增亮,这让这个画面看起来过曝了一般,但其实Bloom只需要对亮的区域增亮,本身暗的地方就不需要增亮了。
2.8 强度(Intensity)
最后,提供一个Intensity选项,控制Bloom的整体强度。
结束语
大功告成,我们在渲染管线中增加了后处理堆栈,以及实现了一个Bloom效果,其实在做完这篇之后,我觉得这个渲染管线才算基本上达成了大部分需要的功能,也算是一个里程碑吧。
最新版PTCMS4.3.0小说源码,PTCMS聚合小说+安装教程-青柠资源网
PTCMS 4.3.0是一款专注于小说的系统,其在PTCMS 4.2.8的基础上进行了全面升级,包括修复、去后门、修复漏洞、优化,并新增了条内置采集规则,确保了系统的稳定性和安全性。以下是PTCMS 4.3.0的主要特点:
在终端体验方面,PTCMS 4.3.0支持电脑端和手机端,并提供了3个PC端模板和4个手机端模板,用户可以根据需要选择合适的界面,优化阅读体验。系统还支持AMP、MIP集权引导页,进一步提升了移动端的访问速度和用户体验。
此外,PTCMS 4.3.0还具备作者入驻功能,支持作者设置收益,让创作与收益并行。内置采集功能简化了内容获取流程,用户只需一键操作即可快速采集,采集速度可达秒5部。系统提供了原创专区和开放专区,满足不同类型的创作需求。订阅和月票兑换功能则让阅读与互动更加便捷。
在SEO优化方面,PTCMS 4.3.0提供了全面的设置选项,包括TKD设置、URL优化、Sitemap设置、百度和神马推送等,帮助网站提升搜索引擎排名。蜘蛛爬行统计和推送日志功能,有助于监控网站的访问情况和优化策略。
PTCMS 4.3.0的书籍付费管理和VIP会员功能,为运营者提供了灵活的盈利模式,同时确保了用户获取内容的便捷性。系统功能丰富,提供了一站式的小说管理解决方案。
为了方便用户快速部署PTCMS 4.3.0,推荐使用宝塔面板进行一键安装。请确保服务器环境满足以下要求:Linux服务器,Centos 7.0、Nginx 1.、MySQL 5.5、php7.3。虚拟主机无法安装,请注意环境兼容性。
获取PTCMS 4.3.0源码,请访问:qnziyw.cn/cmsmb/qtcms/3...
免费开源的建站程序大全,不会编程也可以自助搭建网站了哦
想建立网站,但又不懂编程?不用担心,这里有免费开源的CMS建站程序,让你轻松搭建属于自己的网站!只需掌握简单的HTML和CSS,你就能发挥创意,定制个性化的网站。
WordPress,访问网址:wopus.org
WordPress是使用PHP语言开发的博客平台,支持PHP和MySQL数据库的服务器,让你轻松搭建博客或内容管理系统。
帝国CMS,访问网址:phome.net
《帝国网站管理系统》基于B/S结构,安全、稳定,适合Linux/Windows/Unix等环境下高效运行,是一个适用于网站解决方案的系统。
开源导航,访问网址:open.la.com
啦网址导航建站系统,通过开源方式帮助更多站长轻松搭建网址导航站。
HDwiki,访问网址:kaiyuan.hudong.com
HDwiki是一家全球领先的社会化知识媒体平台,提供多元拓展的网站解决方案,包括互动百科网、HDWIKI、移动互联网三大业务。
PHPWind,访问网址:phpwind.net
PHPWind专注于中小网站应用整合,提供丰富的社区应用,满足人们的信息获取、交流等需求,成为人们的网上家园。
织梦CMS,访问网址:dedecms.com
织梦CMS是一款集简单、健壮、灵活、开源特点的开源内容管理系统,国内领先品牌,拥有大量安装量和用户群体。
易思ESPCMS,访问网址:ecisp.cn
易思ESPCMS提供优秀的SEO优化机制和丰富的企业网站功能,支持企业网站的快速建立与优化。
Discuz,访问网址:discuz.net
Discuz是一款以社区为基础的专业建站平台,支持论坛、社交网络、门户、群组、开放平台等应用的融合。
ECSHO,访问网址:ecshop.com
ECSHOP网上商店系统提供免费网店搭建,支持多种手机客户端,适用于企业、公司网站制作。
Z-Blog,访问网址:zblogcn.com
Z-Blog是一款基于Asp和PHP平台的开源程序,小巧而强大,提供便捷的内容管理。
BIWEB,访问网址:biweb.cn
BIWEB是一个快速开发、简单易用的面向对象的企业应用级PHP MVC建站系统,支持webapp版本,步入移动端应用系统时代。
木翼下载,访问网址:nowwing.com
木翼下载系统是一款专业的下载系统,具有高效专业的特点。
记事狗微社区系统,访问网址:jishigou.net
记事狗微社区系统是一套创新的PHP开源微社区程序,支持多种手机客户端,打通全站的信息流与关系流。
动易软件,访问网址:powereasy.net
动易软件作为网站建设和管理系统领域的技术与服务提供商,为各种企业需求提供专业解决方案。
PJBlog,访问网址:bbs.pjhome.net
PJBlog是一款开源免费的中文轻型云博客系统程序,提供技术交流论坛。
商派Shopex,访问网址:shopex.cn
商派提供专业的电子商务服务与技术,为企业及创业者提供商城网店系统、分销管理等解决方案。
米拓,访问网址:metinfo.cn
米拓是一款采用PHP+Mysql架构的CMS建站系统,支持多语言、响应式展示,适合企业、公司网站制作。
MIPCMS,访问网址:mipcms.com
MIPCMS基于百度MIP移动加速器SEO优化后的网站系统。
TPTCMS,访问网址:tpt.com
TPTCMS专注于模块化网站内容管理系统开发。
Typecho,访问网址:typecho.org
Typecho是一款内核强健、扩展方便、体验友好的轻量级开源博客程序,适合搭建个性化博客平台。
ECTouch,访问网址:ectouch.cn/
ECTouch微商城系统提供永久免费的手机商城解决方案,支持微信商城源码,对接ecshop系统与模板堂模板。