游戏开发
文章平均质量分 51
xak
Sometimes when I look at the world, i can see a line behind it.
展开
-
Performance Of SRP Batching VS GPU Instancing
So when you have a large number of the same mesh and material (100's, 1000's, etc) on screen then GPU Instancing makes sense and should perform better.When you have a large number of different materials but few shader variants then SRP Batching is the be转载 2022-06-08 10:40:40 · 529 阅读 · 0 评论 -
The Mali GPU: An Abstract Machine
Mali GPU: An Abstract Machine - Frame Pipelining - Graphics, Gaming, and VR blog - Arm Community blogs - Arm CommunityWe will explore the fundamental macro-scale architectural structures and behaviors developers have to worry about, how this translates int转载 2022-03-28 14:38:41 · 250 阅读 · 0 评论 -
Deferred shading on mobile: An API overview
The Vulkan and OpenGLES APIs expose mechanisms for fetching framebuffer attachments on-tile. A special feature of tile-based GPUs, like Arm Mali, is the ability to implement fast programmable blending and on-chip deferred shading-like techniques.In this转载 2022-02-09 15:23:24 · 676 阅读 · 0 评论 -
Introducing Pixel Local Storage: an extension ahead of its time
Back in 2014. Since then, many things have happened that have transformed mobile Graphics, particularly the release of the first Vulkan version in February 2016. Built from the ground up, Vulkan was intended to replace OpenGL as the main Graphics API, aft.转载 2022-02-09 12:27:02 · 337 阅读 · 0 评论 -
Shader Conditional Statements Performance Detail
What is it about shaders that even potentially makesifstatements performance problems? It has to do with how shaders get executed and where GPUs get their massive computing performance from.Separate shader invocations are usually executed in parallel, ..转载 2022-01-19 11:13:45 · 227 阅读 · 0 评论 -
About PositionNDC In URP
VertexPositionInputs GetVertexPositionInputs(float3 positionOS){ VertexPositionInputs input; input.positionWS = TransformObjectToWorld(positionOS); input.positionVS = TransformWorldToView(input.positionWS); input.positionCS = TransformWorl...原创 2021-09-14 14:41:23 · 746 阅读 · 0 评论 -
How Much Does A Tex2D/TexCUBE Cost
On mobile, texture sample probably takes as much as "several to several dozen simple math operations".On PC, the ratio is higher, for one texture sample you can afford dozens to hundreds of math operations.And then there's funky hardware like PowerVR (e.转载 2021-06-16 12:51:32 · 250 阅读 · 0 评论 -
Pre-multiplied Alpha blending
Standard Alpha blendinguses this formula:result = foreground.alpha * foreground + (1 - foreground.alpha) * backgroundThis is a linear interpolation between the foreground and background colours, using the foreground's alpha as the interpolation weig.转载 2020-10-30 17:39:45 · 609 阅读 · 0 评论 -
Albedo chart
General PBR infoPhysically based rendering (PBR) is a subset of computer-generated imagery that aims at production of pictures while making use of physically based shading.There's a lot of info about this theme written already, so I wouldn't copy-paste转载 2020-05-13 14:42:32 · 502 阅读 · 0 评论 -
Feeding a physically based shading model
Physically based rendering (PBR) require to use physical lighting setup and good spatially varying BRDF inputs (a.k.a textures) to get best results.Feeding the shading model with physically plausible data is in the hand of artists.There are many texture转载 2020-05-13 12:30:01 · 848 阅读 · 0 评论 -
GTA V - Graphics Study
Part 1: Dissecting a Framehttp://www.adriancourreges.com/blog/2015/11/02/gta-v-graphics-study/Part 2: LOD and Reflectionshttp://www.adriancourreges.com/blog/2015/11/02/gta-v-graphics-stu转载 2016-01-05 12:25:28 · 1161 阅读 · 0 评论 -
Making AI Fun: When Good Enough is Good Enough
Making good artificial intelligence for computer opponents is difficult. Programming a game like draughts isn't terribly challenging; adding convincing AI, however, might take longer than making the g转载 2015-04-03 16:12:49 · 827 阅读 · 0 评论 -
Root Motion深度解析[Unity]
本文详细的解读了Unity中关于动画Root Motion的相关知识。原创 2014-09-22 16:37:38 · 24988 阅读 · 10 评论 -
Shader Depth Offset [Polygon Offset]
Offset Factor, UnitsfactorSpecifies a scale factor that is used to create a variable depth offset for each polygon. The initial value is 0.unitsIs multiplied by an implementation-specifi原创 2016-07-11 15:19:58 · 4385 阅读 · 1 评论 -
鱼群算法实现-The Three Simple Rules of Flocking Behaviors: Alignment, Cohesion, and Separation
In the natural world, organisms exhibit certain behaviors when traveling in groups. This phenomenon, also known as flocking, occurs at both microscopic scales (bacteria) and macroscopic scales (fish).转载 2014-11-03 17:00:23 · 6563 阅读 · 0 评论 -
understanding Steering Behaviors
1、Seek2、Flee转载 2014-11-03 18:29:57 · 2048 阅读 · 0 评论 -
PBR TEXTURE CONVERSION
https://marmoset.co/posts/pbr-texture-conversion/#spectometal转载 2019-07-18 18:08:33 · 294 阅读 · 0 评论 -
Unity资源提取+KTX贴图转PNG
本文介绍了如何使用Disunity进行资源提取,以及如何将KTX贴图转换成PNG格式。原创 2014-10-03 00:48:11 · 12322 阅读 · 0 评论 -
GPU截帧工具备忘
因为系统重装,需要用到GPU截帧工具来分析游戏的时候,瞎折腾了好久。一直以为自己原来用的是Nvidia的工具(因为电脑是Nviadia显卡),下载了多个版本的PerfHUD,不是本身报错,就是游戏启动报错。然后尝试SNight,也是进入到游戏之后,刚显示出HUD的时候,就报错了(尝试其他游戏是正常的)。分明记得原来自己分析过这款游戏的。后面实在没辙了,就想,换个工具吧。然后下载了GPA,一打开,看原创 2016-10-23 14:50:09 · 3214 阅读 · 0 评论 -
CommandBuffer.Blit BuiltinRenderTextureType.CameraTarget为空的问题
当使用CommandBuffer来实现后处理的时候,发现cb.Blit(BuiltinRenderTextureType.CameraTarget,...)无效,在FrameDebug中看到传入的_MainTex为Whilte,原因:在Forward模式下,默认相机是渲染到BackBuffer,而在渲染的时候,无法直接读取BackBuffer(Deffered模式下有GBuffer),解决原创 2017-08-02 11:34:45 · 4152 阅读 · 0 评论 -
渲染状态改变消耗详情
参考:https://computergraphics.stackexchange.com/questions/37/what-is-the-cost-of-changing-statehttp://media.steampowered.com/apps/steamdevdays/slides/beyondporting.pdf原创 2017-08-29 10:53:44 · 1133 阅读 · 0 评论 -
Crunch compression of ETC textures
Introduction to Crunch: Compressing DXT textures.Crunch is an open source texture compression library © Richard Geldreich, Jr. and Binomial LLC, available on GitHub. The library was originally d转载 2018-01-05 11:33:28 · 2102 阅读 · 0 评论 -
Linear Vs Gamma For Textures Of Unity Standard Material
Albedo should be sRGB, not linear. It should be noted that for the most part it's not how they're saved but how they're created eventually read. The image formats themselves don't usually have a conce...转载 2018-07-06 12:08:40 · 360 阅读 · 0 评论 -
Depth Peeling
http://developer.download.nvidia.com/assets/gamedev/docs/OrderIndependentTransparency.pdf转载 2018-10-10 17:16:03 · 1913 阅读 · 0 评论 -
PBR贴图校验
注:Substance中在进行校验的时候,非金属的Albedo值校验的时候,灰度值计算使用的是:Gray = (Red * 0.299 + Green * 0.587 + Blue * 0.114)金属的Specular值校验的时候,灰度值计算使用的是:Gray = (Red + Green + Blue) / 3...原创 2019-07-26 16:10:25 · 882 阅读 · 0 评论 -
PNG Messy Alpha Problem - White Around Edges
The reason for this is due to how the texture image was authored, combined with the filtering that most 3d engines use when textures are displayed at different sizes on screen.Your image may have co...转载 2019-09-19 11:17:57 · 256 阅读 · 0 评论 -
各种移动GPU压缩纹理的使用方法
介绍了各种移动设备所使用的GPU,以及各个GPU所支持的压缩纹理的格式和使用方法。1.移动GPU大全目前移动市场的GPU主要有四大厂商系列:1)Imagination Technologies的PowerVR SGX系列 代表型号:PowerVR SGX 535、PowerVR SGX540、PowerVR SGX 543MP、PowerVR SGX 554MP等代表转载 2014-08-22 11:54:43 · 776 阅读 · 0 评论 -
Unpack Png Files From The Plist File
脚本:#! /usr/lical/bin/pythonimport os,Image,sysfrom xml.etree import ElementTreedef tree_to_dict(tree): d = {} for index, item in enumerate(tree): if item.tag == 'key':转载 2014-11-17 10:57:54 · 2105 阅读 · 0 评论 -
UV滚动不平滑-抖动原因及解决方法[Unity]
本文描述了Unity中UV滚动抖动的原因和解决办法。原创 2014-09-25 17:25:03 · 3493 阅读 · 0 评论 -
Android下一个apk安装多个程序入口…
Android下一个apk安装多个程序入口图标文章分类:移动开发Android中有的Ap功能比较复杂,为了方便用户使用,可以提供多个入口图标,每个入口图标对应一个功能。 如果想安装一个Apk在程序管理中出现多个图标,只要给相应的Activity增加intent-filter即可,类似于如下: Xml代码 "quality="high" allowscriptaccess转载 2014-08-22 11:36:45 · 735 阅读 · 0 评论 -
Split Png Aplha Channel
////// Split PNG file into two JPGs (RGB and alpha)///private voidSplitPngFileIntoRGBandAplha(string imagePath){ try { // Open originalbitmap var bitmap = new Bit转载 2014-08-22 11:54:19 · 727 阅读 · 0 评论 -
游戏网络同步——dead reckoning
网游中,玩家的位置同步经常会用到deadreckoning算法,中文翻译叫导航推测,下文简称DR。DR提供了隐藏延时和减少带宽的方法。DR在本地模拟其他联网玩家状态(主要是位置信息),减少网络带宽消耗的同时尽可能的还原实际情况。在飞机游戏中DR的一个例子:1. 飞机的运动速度都是固定的,两台游戏机联机玩,分别是A和B;2. 对于A和B来说,是否需要发送PDU(protocoldat转载 2014-08-22 11:55:13 · 4585 阅读 · 1 评论 -
text2D at uv(0,0) get wrong result[Unity]
现象:using ramp textures and getting strange results when using the (0,0) uv of my texture.So using the texture above, instead of black the shader is rendering white:float3 ramp = text2D原创 2014-09-19 15:50:14 · 1031 阅读 · 0 评论 -
2D occlusion culling
Ask:In my 2D game, I have static and dynamic objects. There can bemultiple cameras. My problem:Determineobjects that intersect with the current camera's viewrectangle.Currently, I simply iterat原创 2014-08-22 11:56:01 · 840 阅读 · 0 评论 -
游戏网络同步——MMO位置同步
前提1.client和server之间或多或少存在网络延迟,需要提前做好对时,并在网络环境发生变化时校正时差。国内的公网通信,非跨网的情况下,一般在120ms左右。本地的网络会好一些。2. 要努力防止外挂,如果是以client的通知为主,也要做抽查,或者全部都校验。3. 应用DR技术,在没有收到位置更新包的同时,client视野中的其他client按照游戏规则运动。4. 控制位置同步的转载 2014-08-22 11:55:16 · 8758 阅读 · 1 评论 -
3 ways to draw 3d lines in unity3d
ways to draw 3d lines in unity3d" TITLE="3 ways to draw 3d lines in unity3d" />Just as I was thinking about an interesting demo to play withdrawing functions in Unity3D,Mrdoob publishedhis Harmon原创 2014-08-22 11:54:13 · 2248 阅读 · 0 评论 -
MMOG网络同步算法揭秘(QQ幻想)
游戏发展从单机游戏到局域网游戏再到mmog(Massive multiplayer online game,即大型多人在线游戏),越来越强调玩家之间的互动。mmog形成互动的前提是游戏中的所有玩家认为他们是在同一个游戏世界中,然而这个同一个游戏世界真的存在吗?答案是否定的,实际上,从不同的维度看,mmog中存在3种不同世界: 真实世界,也就是mmog服务器推演的游戏世界; 玩家自己的转载 2014-08-22 11:55:20 · 1206 阅读 · 0 评论 -
3DS文件格式
1、读取规则3ds文件的读取规则如下:字节:直接读取;字:先读低位字节,后读高位字节,如ed 3c读出后的字为3c ed;双字:先读低位字,后读高位字,如ed 3c 25 43读出后的双字为43 25 3c ed;浮点数:直接读取四个字节。2、CHUNKchunk是3ds文件的基本构成单位。每一个chunk包括一个头和一个主体。chunk是相互嵌套的,这就决定了你必须以递归的方式读转载 2014-08-22 11:34:44 · 648 阅读 · 0 评论 -
骨骼模型实现
针对 BVH 文件给定的骨骼模型,可以建立如下数据结构进行描述:structNode //定义节点信息{ float offX,offY,offZ; //存储三个偏移分量 (相对于父节点) float xRot,yRot,zRot; //存储三个旋转分量 (相对于父节点) Node*Parent; //存储所在节点的父节点原创 2014-08-22 11:34:42 · 946 阅读 · 0 评论 -
libgdx文档
http://libgdx.badlogicgames.com/documentation.html原创 2014-08-22 11:44:23 · 941 阅读 · 0 评论