ShaderSimpler(9) : Deferred shading with Multiple Render Targets

风格化 + PBR 风格化 + PBR PBR 追求 物理正确,风格化 则天马行空,两个本来不搭边的东西结合在一起,也可以实现出相当有趣的效果。 下图是我的新欢,异界锁链 的女主小姐姐: 注意看女主的衣服: 漫反射部分,明暗过渡是比较典型的 卡通渲染 的方式,线条感很强。 高光部分,直接高光的拖尾疑似 GGX,间接高光也很明显,PBR的质感。 皮肤部分的明暗过渡比较平滑,暗部由红至黑的变化应该依靠 贴... 阅读详情

源码下载:http://myshaders.googlecode.com/files/ShaderSimpler_05192007.rar

  今天抽空是试验了一下使用MRT进行deferred shading。基本是在上个例子的基础上修改的,主要有一下几个地方:

  1. 使用SetRenderTarget分别将各个render target设置好; 
  2. 在pixel shader中使用“COLOR[n]”来写入各个render target;
  3. 有一点需要注意的是,MRT的各个surface的bits必须是一致的,所以这个例子使用了两个G16R16的float texture来保存position。

OK,就是这样简单。渲染效果与上个例子一样。这个例子程序在geforce 7600GT上测试通过,其他显卡没测过。

Ogre学习笔记(3):Mesh的渲染流程        首先一个Entity对象必须Attach到一个SceneNode。1.  创建一个SceneNode:SceneManager::getRootSceneNode() (在SceneManager::init时会创建一个RootNode)à SceneNode::createChildSceneNode()àNode::createChild()主要的操作在这个函数中完成,首先调 阅读详情

相关推荐

Ogre学习笔记(4):OctreeSceneManager

既然前面分析Mesh(Entity,SceneNode)的渲染时已经看到了OctreeSceneManager,那么现在正是分析一下它了。所谓SceneManager,我想处理“空间分割”和“可见性判断”是两个主要的任务,后者已经打过一点交道了,是通过下面这个函数完成的:    virtual void _findVisibleObjects ( Camera * cam, bool onlySh

燕良@游戏开发 3853

ShaderSimpler(8) : 初探Deferred shading

源码下载:http://myshaders.googlecode.com/files/ShaderSimpler_05142007.rar 对于一个基于Shader的渲染系统如何来计算多个动态光源的光照呢?这是一个困扰我很久的问题。基本上有这样三种解决方案:1. 在单个pass中计算物体的所有光照。这种方案的主要缺点就是shader管理非常复杂。常见的思路是基于一套shader模版,自动生成n

燕良@游戏开发 9686

onnxruntime-gpu版本选择与CUDA环境配置实战指南

本文是onnxruntime-gpu版本选择与CUDA环境配置的实战指南。针对AI模型部署中常见的GPU无法调用问题,核心在于确保onnxruntime-gpu版本与系统CUDA Toolkit版本严格匹配。文章详细讲解了如何精准确定CUDA版本、查找官方对应关系、执行正确安装命令,并通过完整测试脚本验证GPU是否成功启用,最后提供了常见问题排查与生产环境调优建议。

weixin_29164091的博客 522

《功夫online》3D引擎开发总结

    【《功夫online》正在公测:http://www.gongfu.com.cn】    《功夫online》也公测一段时间了,早就想抽时间写点关于功夫开发的东西,可一直无法静下心,现在终于可以松一口气了。功夫的开发始于2004年6月,至今将近3年啦。功夫是我全程参与的第二个大型游戏项目了,抛开运营、市场等外在因素,单就游戏本身来说,我认为这个产品是成功的。在前几年,完成第一个项目的时候,

燕良@游戏开发 7835

音视频开发—H264相关概念和压缩原理详解(GOP、宏块、帧内压缩、帧间压缩)

本文讲述了H264相关概念和原理——GOP概念,SPS与PPS,帧内压缩原理,帧间压缩原理,解释了什么是运动补偿,什么运动矢量等等概念

weixin_46999174的博客 3978

VS2022下OSG+OSGEARTH开发环境一键配置指南(Win10 x64+CMake自动化构建)

本文详细介绍了在VS2022环境下配置OSG和OSGEARTH开发环境的完整指南,包括软件下载、CMake自动化构建、编译实战及环境验证。通过一键配置脚本和常见问题解决方案,帮助开发者快速搭建3D开发环境,提升开发效率。

weixin_28828243的博客 405

Ogre学习笔记(2):Mesh的加载

  如果新开始写一个3D渲染引擎,Mesh应该是一个很好的切入点。当一个看似简单的Mesh渲染到窗口时,说明引擎的架构已经确定,并验证了。想了解Ogre内部的机制, 可以先看看Mesh的加载过程,这里主要涉及到Resource是如何管理的,Material是怎样处理的,Resource和HardwareBuffer是如何关联的。对于前面教程代码的执行过程做一下分析:创建一个Entity(加载M

燕良@游戏开发 7354

UMI刷盘机器人代码实战:从SLAM到Diffusion Policy的完整部署流程

本文详细解析了UMI(Universal Manipulation Interface)刷盘机器人从数据准备到真实部署的完整实战流程。通过SLAM处理视频数据生成三维轨迹,并训练Diffusion Policy模型,最终将策略部署到UR5机械臂与WSG50夹爪上,实现从模仿学习到物理执行的闭环。

weixin_29042035的博客 461

ShaderSimpler(6) : Parallax Mapping

源码下载地址:http://yanonsoftware.googlepages.com/ShaderSimpler.zip    Parallax map通过简单的计算可以大幅提高per-pixel光照的效果。Parallax map的想法基于一个简单的事实,那就是当我们用一个多边形去表现一个凹凸不平的表面的时候,事实上随着视线的变化,看到的实际的texel并不是顶点uv坐标差值出来的那个结果

燕良@游戏开发 6206

2026滑块验证码终极实战:缺口检测算法+人机轨迹模拟,识别率从60%飙升至95%全方案

**摘要:2026年AIGC技术发展导致传统验证码失效,滑块验证码成为主流防护手段。本文深入分析了传统方案识别率低的原因,并提出多级检测融合和行为拟合优化方案。通过图像预处理优化、三级缺口检测引擎(差分图像法、Hu矩轮廓匹配、YOLOv8n模型兜底)将识别率提升至99.2%。同时针对轨迹模拟环节,设计了包含抖动特征、时间随机性和个体差异的行为模型,使通过率从12%提升至87%。该方案解决了传统方法在缺口定位精度和轨迹真实性方面的核心痛点,为应对新一代验证码风控提供了完整的技术框架。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1899

Vue3+Openlayers教程导航页【目录】

欢迎来到 Vue3+Openlayers 系列教程,这里是我在 优快云 编写的所有 Vue3+Openlayers 系列相关文章的索引页,适合初学者到进阶用户系统阅读。👀 更多教程正在持续更新中,欢迎关注我,一起探索 Openlayers 的强大魅力!

小彭的博客 1263

自己开发引擎的时代已经过去了!

         首先要说说明一下,这个所说的“自己写引擎”值得是在一个商业化的游戏项目中。       上个月装了新电脑,配的7600GT,找了几个新游戏看了看。《中世纪-全面战争》给我很深的印象!千军万马在一起混战,而近处的角色还拥有per-pixel lighting,一方面感慨7600GT比5600GT快太多了,一方面也感叹引擎技术的进步太快了!       回头看看国内的

燕良@游戏开发 6134

QMK固件OLED显示屏配置教程:从零开始实现个性化键盘显示(实操部分)

本教程详细介绍了如何从零开始配置QMK固件的OLED显示屏,实现个性化键盘显示。首先,文章解释了OLED显示屏的基本概念及其在键盘中的应用,并介绍了I2C和SPI两种通信方式。接着,教程逐步指导用户如何在QMK固件中启用OLED功能,包括在rules.mk中启用OLED、在halconf.h和mcuconf.h中配置I2C功能,以及在config.h中设置I2C和OLED参数。最后,教程展示了如何在keymap.c中编写代码,实现OLED显示内容,并提供了进阶定制功能,如显示当前层信息、按键状态和QMK L

Despacito0o的博客 580

Ogre学习笔记(8):骨骼动画

       OGRE的基本动画控制是很简单的,设置一个动画的操作是这样:        // Set idle animationmAnimationState = ent->getAnimationState( "Idle" );   mAnimationState->setLoop( true );mAnimationState->setEnabled( true );(

燕良@游戏开发 5218

73、结合无人机进行rk3588oak-lite跟踪目标物体进行识别、跟踪

搭建仿真转换模型环境,主要python版本和我下载的rknn2的版本。截取shape节点,输出模型。so库也要对应转模型的whl。其中安装的whl版本。

sxj731533730 1623

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ShaderSimpler(5) : Bump Mapping(Normal mapping)

源码下载地址:http://yanonsoftware.googlepages.com/ShaderSimpler.zip从贴图生成normal map    normal map需要从一个颜色贴图对应的高度图生成。为了计算i,j点的normal,首先可以根据高度差计算出s,t方向的切向量:    S(i,j) =     T(i,j) = 其中a是一个缩放系数。normal可以由这两个切向量得出

燕良@游戏开发 4649

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ShaderSimpler(3) : 卡通渲染

    优快云 blog问题百出,图片插不进来,真让人郁闷!今天总算能连上google page了,继续上传shader simpler源码。    源码下载地址:http://yanonsoftware.googlepages.com/ShaderSimpler.zip    卡通渲染(cartoon render,cel-shading)主要包括两个效果:    1、把普通光照的平滑亮度变化

燕良@游戏开发 4352

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Ogre学习笔记(1):Basic Tutorial

OGRE Homepage:http://www.ogre3d.org/       OGRE的WIKI中有一系列的基本教程,这篇笔记就是读完这些教程后的一个总结。教程首页:http://www.ogre3d.org/wiki/index.php/Ogre_Tutorials。       Basic Tutorial 1主要讲了几个OGRE中的基本概念:1.  SceneManage

燕良@游戏开发 4170

换个ID。。。。新博客

开始创业了,一段全新的历程!优快云的ID也换一个,,,http://blog.youkuaiyun.com/Neil3D

燕良@游戏开发 3978

Ogre学习笔记(6):BspSceneManager

【1. 概览】       Ogre支持Quake3的bsp格式。相关的代码在“Plugin_BSPSceneManager”工程中。主要的类有以下几个: Class BspSceneNode:       BspSceneNode是SceneNode的派生类,是专门提供给BSPSceneManager使用的。主要是提供针对于BSP tree的可见性判断。这个类并不是BSP tre

燕良@游戏开发 3806

ShaderSimpler(4) : 环境映射

源码下载地址:http://yanonsoftware.googlepages.com/ShaderSimpler.zip    Cube Map环境映射特别适合与曲面,实现也很简单--构造一个视点到顶点的向量,然后计算出相对与normal的反射向量,用此向量索引cube map贴图即可。        顺便比较了一下shpere环境映射的效果。Sphere环境映射的实现也很简单,把顶点法向量变换

燕良@游戏开发 3717

训练数据示例

针对“规格书生成测试用例脚本”的任务,在 LLaMA-Factory 中使用即可。关键是把“规格书内容”放进input字段,把“期望的脚本输出”放进output字段。

liuxs2009的专栏 58

从瀑布到流水线:DevOps 入门与 GitLab + Jenkins + Docker 落地实践

先看清软件开发生命周期(SDLC)的全貌,再对比瀑布模型与敏捷开发,随后进入持续集成与 CI/CD 的机制内核;最后落到实操——在 GitLab、Jenkins、Docker 组成的四机实验环境里,走完源码托管、自动化构建、镜像封装与远程部署,直到参数化构建与版本回滚。概念与命令并重,既是入门地图,也是操作手册。

年轻的时候很穷,经过我多年的努力,终于不再年轻。 261

DNS 不是把域名翻译成 IP:递归解析、TTL 缓存、CNAME 与报文排错实战

本文通过离线Python实验,拆解DNS递归解析、缓存机制与报文结构,揭示“DNS不是全局映射表”的本质。重点解析递归器角色、TTL衰减、CNAME链处理、负缓存隔离及修改记录延迟生效等核心问题,结合实战排错案例,阐明缓存层级、事务匹配、截断处理与安全边界,强调从应用到权威的逐层排查逻辑,实现可复现、可验证的DNS教学系统。

此人很懒,什么都没有写~~ 348

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 128
上一篇: ShaderSimpler(8) : 初探Deferred shading
下一篇: MMORPG开发杂谈(五):PVP才是精华
yanonsoftware
博客等级 码龄21年 104粉丝 67原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值