游戏开发(3d)
面包大师
http://www.cnblogs.com/pkuoliver/archive/2010/10/27/Convert-m-number-to-n-number.html
展开
-
游戏里实现碰撞检测方法
几乎所有的3D游戏都离不开碰撞检测——无论是各物体之间的碰撞检测,还是物体与场景之间的碰撞检测。在真实世界中,你是很自然地不能穿墙而过的,所以很多人在玩各种3D游戏的时候自然而然的忽视了碰撞检测这一过程的存在。然而,碰撞检测的过程是重要的。如果没有它,你在CS中就会毫无遮拦的飞来飞去——如果考虑重力的话,则会一直不停地往下掉,直到符点数溢出(或你受不了这一漫长的过程而离开游戏)为止。碰撞检测是在编转载 2016-06-24 14:30:53 · 2218 阅读 · 0 评论 -
猫都能学会的Unity3D Shader入门指南(一)
动机自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解。虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心的谁都能用的3D引擎,但是只是肤浅的使用,可能是无法达到随心所欲的境地的,因此,这种状况必须改变!从哪里开始呢,貌似有句话叫做会写Shader的都是高手,于是,想大概看看从Shader开始能不能转载 2017-04-25 17:53:35 · 343 阅读 · 0 评论 -
Shader编程学习笔记(十)—— Cg语言入门2 - profile和基本数据类型
Cg入门二:profile和基本数据类型 上一小结我们了解了Cg的输入输出,输入使用“in”关键词,输出使用“out”关键词,既是输入也是输出则使用“inout”关键词;也了解了Cg基本的语义,顶点程序传递给片段程序的位置坐标使用“POSITION”语义,它不需要在片段程序中做特殊处理,图形硬件会自动针对“POSITION”数据进行处理。 本小结我们主要了解一下Cg的profi转载 2017-04-28 18:09:19 · 794 阅读 · 0 评论 -
Shader编程学习笔记(九)—— Cg语言入门1 - 输入输出和语义
Cg入门一:输入输出和语义 本小节对Cg语言进行一个入门了解。 在以前的课程中,我们了解了渲染管线、顶点和片段程序和颜色计算等,在本小结中来了解一个简单的shader的顶点和片段程序的输入输出以及常用语义。 编写一个简单的顶点和片段着色器,代码如下:Shader "Lesson/vertex&fragment"{ SubShader{转载 2017-04-28 18:08:33 · 853 阅读 · 0 评论 -
Shader编程学习笔记(八)—— Surface Shader 2
Surface Shader 上一小结主要了解了Surface Shader使用了“#pragma surface surf Standard fullforwardshadows”指令的意义,这一小节主要了解“surf”surface函数。void surf (Input IN, inout SurfaceOutputStandard o) { // Alb转载 2017-04-28 18:07:34 · 549 阅读 · 0 评论 -
Shader编程学习笔记(七)—— Surface Shader 1
Surface Shader 本小结对Unity的Surface Shader做一个大概的了解。主要了解在Surface Shader当中比较重要的几个部分,分别是:SurfaceOutputInputlighingshadow 首先查看一下Unity的官方手册中的Writing Surface Shaders,其中描述道:如果要编写一个shader去和光进行交互是转载 2017-04-28 18:05:11 · 385 阅读 · 0 评论 -
Shader编程学习笔记(六)—— Fixed Function Shader 2
Fixed Function Shader 在上一小节中我们已经了解到,Fixed Function Shader是固定功能的着色器,它的功能有限,但是编写比较简单,因为它总是通过一系列的命令达到我们对图形着色的目的。其中我们已经了解了Properties(属性)、Material(材质)、Lighting(光照),接下来来了解一下最为重要的一个命令settexture。 很多转载 2017-04-28 18:03:10 · 440 阅读 · 0 评论 -
Shader编程学习笔记(五)—— Fixed Function Shader 1
Fixed Function Shader 在学习固定管线着色器中要涉及到的知识点是:PropertiesMaterialLightingSetTexturePass 首先来回忆一下ShaderLab的基本结构:shader "name"{ [Properties] SubShaders [FallBack]} 在shader主要的三转载 2017-04-28 17:59:49 · 426 阅读 · 0 评论 -
Shader编程学习笔记(四)—— Unity Shader的组织形式(ShaderLab)
Unity Shader的组织形式 Unity Shader的形态 Unity官方手册上讲Unity Shader有三种不同的编写方案,这三种编写方案分别是surface shaders、vertex and fragment shaders和fixed function shaders。 从前面几篇笔记中可以了解到,可编程图形管线中能够编写shader的主要是两个部分:转载 2017-04-28 17:59:04 · 382 阅读 · 0 评论 -
Shader编程学习笔记(三)—— 三大主流编程语言 HLSL/GLSL/Cg
三大主流编程语言 HLSL/GLSL/Cg Shader Language Shader Language的发展方向是设计出在便携性方面可以和C++、Java等相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“尽可能的控制渲染过程”同时“利用图形硬件的并行性,提高算法效率”。 Shader Language目前主要有3种语言:基于OpenGL的OpenGL S转载 2017-04-28 17:30:48 · 461 阅读 · 0 评论 -
Shader编程学习笔记(二)—— Shader和渲染管线
Shader和渲染管线 什么是Shader Shader,中文翻译即着色器,是一种较为短小的程序片段,用于告诉图形硬件如何计算和输出图像,过去由汇编语言来编写,现在也可以使用高级语言来编写。一句话概括:Shader是可编程图形管线的算法片段。 它主要分为两类:Vertex Shader和Fragment Shader。 什么是渲染管线 渲染转载 2017-04-28 16:48:07 · 478 阅读 · 0 评论 -
即时战略游戏的AI是怎样实现的?
导读:作为实际开发过AI的人,拿一份五年前的代码,以最难的体育竞技类游戏为例,来科普一下,什么叫做游戏团队策略,什么叫做分层状态机?具体该如何落地到代码?如果你能实现体育竞技的AI,那即时战略只是小事一桩。 国内真正做过游戏AI的很少,说概念的人很多,所以看了半天离实际编码还是很远,不知道该怎么入手,因为国内游戏主要以MMO和卡牌为主,RTS比较少,体育竞技类游戏更少转载 2017-03-07 16:59:48 · 1438 阅读 · 0 评论 -
帧锁定算法解决游戏同步
帧锁定算法解决游戏同步早期 RTS,XBOX360 LIVE游戏常用同步策略是什么?格斗游戏多人联机如何保证流畅性和一致性?如何才能像单机游戏一样编写网游?敬请观看《帧锁定同步算法》《帧锁定同步算法》转载请注明出处:http://www.skywind.me/blog/archives/131 算法概念该算法普遍要求网速RTT要在100ms以内,一般转载 2016-12-05 14:01:00 · 922 阅读 · 0 评论 -
网游同步算法之导航推测(Dead Reckoning)算法
在了解该算法前,我们先来谈谈该算法的一些背景资料。大家都知道,在网络传输的时候,延迟现象是很普遍的,而在基于Server/Client结构下的网络游戏的同步也就成了很头疼的问题,在保证客户端响应用户本地指令流畅的情况下,没法有效的保证的同步的及时性。同样,在军方也有类似的事情发生,即使是同一LAN里面的机器,也会因为传输的延迟,导致一些运算的失误,介于此,美国国防部投入了大量的资金用于研究一种比较转载 2016-11-30 20:02:17 · 7095 阅读 · 2 评论 -
帧同步在竞技类网络游戏中的应用
帧同步在网上可以搜的资料比较少,关于游戏的更是没有,不过,实现的原理也比较简单,最近几天就写了份关于帧同步的文档,当作给同事扫扫盲,顺便也在这里发发,可以给其他人参考参考 -- by Fox帧同步 --竞技类网络游戏设计方案转载 2016-11-30 10:50:35 · 479 阅读 · 0 评论 -
学习shader之前必须知道的东西之计算机图形学(一)渲染管线
引言 shader到底是干什么用的?shader的工作原理是什么? 其实当我们对这个问题还很懵懂的时候,就已经开始急不可耐的要四处搜寻有关shader的资料,恨不得立刻上手写一个出来。但看了一些资料甚至看了不少cg的语法之后,我们还是很迷茫,UNITY_MATRIX_MVP到底是个什么矩阵?它和v.vertex相乘出来的又是什么玩意?当这些问题困扰我们很久之后,我们才发现,原来我们是站在浮转载 2016-09-29 14:02:10 · 420 阅读 · 0 评论 -
寻路算法A*, JPS(跳点搜索)的一些杂谈
A*是一个比较经典的启发式寻路算法。是基于dijkstra算法,但是加入了启发函数,使路径搜索效率更高。实现起来很简单。不过要做到通用性高,比如支持各种不同类型的地图,甚至不仅仅是地图,而是个图结构如解决拼图游戏N-puzzle会用到的,就需要多花点心思。用C++实现的话,可以使用模板来适应不同的需要。也可以使用类继承。 template static vector searc转载 2016-09-19 16:48:16 · 9654 阅读 · 2 评论 -
猫都能学会的Unity3D Shader入门指南(二)
关于本系列这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果您在Shader开发上有所心得,很欢迎并恳请您指出文中纰漏,我会尽快改正。在之前的开篇中介绍了一些Shader的基本知识,包括ShaderLab的基本结构和语法,以及简单逐句地讲解了一个基本的s转载 2017-04-25 17:55:37 · 591 阅读 · 0 评论