- 博客(58)
- 收藏
- 关注
转载 shader实例:物体描边自发光
1。【思路】:面向摄像机的物体,它的表面法线【normal】和视角向量【viewDir】的【夹角】越靠近边缘就越大。那么就可以根据这个夹角进行处理,夹角越大,那么发射光越强,就可以实现我们想要的效果。2。【选择shader】:在这里因为是处理表面的各个点,所以使用surface shader比较方便。3。要使用的参数【点到摄像机的向量viewDir】,法线向量【normal】,求点
2016-11-30 11:55:20 4309
转载 音频处理
游戏音频的播放在任何游戏中都占据非常重要的地位,音频的播放还可以分为两种,一种为游戏音乐,另一种为游戏音效。前者适用于较长的音乐,如游戏背景音乐。第二种试用与比较短的游戏音乐,如开枪,打怪 时“砰砰”一瞬间播放的游戏音效。今天MOMO将用下面的例子带盆友们去剖析Unity3D游戏音乐与音效的播放。Unity3D游戏引擎一共支持4个音乐格式的文件.AIFF 适用于较短的音乐文件可用
2016-11-30 09:23:44 379
转载 数字图像处理
此处列举了6中方法:1)调整图片的饱和度2)将图片颜色二值化3)将图片变成黑白色4)模糊5)二值化的另一种方式6)边缘检测*********************************************************************************************************
2016-11-30 09:11:54 406
转载 面试题(陆续更新)
1. .NET和C#有什么区别答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。C#是一种编程语言,可以基于.NET平台的应用。2.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。答:public class MainClass {
2016-11-29 17:18:38 893
转载 面试(陆续更新)
转自: http://blog.csdn.net/wwwang89123/article/details/25912865最先执行的方法是:1、(激活时的初始化代码)Awake,2、Start、3、Update【FixUpdate、LateUpdate】、4、(渲染模块)OnGUI、5、再向后,就是卸载模块(TearDown),这里主要有两个方法OnDisable与OnDe
2016-11-29 10:59:43 635
转载 向量在游戏开发中的作用
(一)向量在游戏开发中是非常实用的,我们在学校学完向量的知识后,只知道向量的基本知识,但对于如何将所学到的向量知识运用到实际的游戏开发中却不知所措。我计划写几篇关于向量在游戏中的应用的文章,总结一下在实际工作中所遇到过的运用向量机智处理问题的技巧。接下来要写的东西都是记录在我的云笔记中,现在计划整理一下后分享出来。 对于向量的那些基本性质我不想说太多,有兴趣的读者可以自行
2016-11-29 10:46:56 1759
原创 透明度混合
Shader "Custom/testShader" { properties { _Color("my color", color) = (1,1,1,1) _MainTex("mt Tex", 2D) = "white"{} _AlphaScale("my Alpha", Range(0,1)) = 1 }
2016-11-28 15:05:40 520 2
转载 显示列表
显示列表可以提高性能,因为他可以存储OPENGL的函数,供以后使用,如果需要多次重绘同一个几何图形,或者如果一次需要多次调用的用于更改状态的函数,把这些函数存储在显示列表中(将显示列表中的矩阵结果集保存,后续使用不需要重复计算以提高性能)当通过网络在另外一台远程计算机上运算OPENGL程序时,把绘画命令保存在显示列表中具有特别重要意义,由于显示列表是服务器的一部分,这样可以减少网络通信,提
2016-11-28 13:27:46 384
原创 透明度测试
Shader "Custom/testShader" { properties { _Color("Main Tint",Color) = (1,1,1,1) _MainTex("Main Tex",2D) = "white" {} _Cutoff("ALpha Cutoff", Range(0,1)) = 0.5 } su
2016-11-24 16:33:14 513
转载 material和sharedMaterial
在Unity3D中,Renderer组件有两个属性:material和sharedMaterial,它们都可以用来获取Renderer的材质属性。但是它们之间却又很大的区别,下面通过示例来讲解一下。准备工作:unity3d中新建一个空场景;创建两个cube,分别命名为Cube0、Cube1;在Project中新建一个材质球,取名M0,shader选择Unlit/Color,shader的M
2016-11-23 09:09:45 868
转载 像素操作
先简单介绍Windows中常用的BMP文件格式,然后讲OpenGL的像素操作。虽然看起来内容可能有点多,但实际只有少量几个知识点,如果读者对诸如“显示BMP图象”等内容比较感兴趣的话,可能不知不觉就看完了。像素操作可以很复杂,这里仅涉及了简单的部分,让大家对OpenGL像素操作有初步的印象。学过多媒体技术的朋友可能知道,计算机保存图象的方法通常有两种:一是“矢量图”,一是“像素图”。矢量图
2016-11-21 17:26:22 498
转载 混合
混合是一种常用的技巧,通常可以用来实现半透明。但其实它也是十分灵活的,你可以通过不同的设置得到不同的混合结果,产生一些有趣或者奇怪的图象。混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色
2016-11-21 16:00:50 211
转载 Lua和C的交互
要理解Lua和C交互,首先要理解Lua堆栈。简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。 介绍lua和c的亲密接触,靠的是一个虚拟栈。lua通过这个虚拟栈来实现和c之间值的互传。栈上的每一个元素是一个lua值(nil,number,string...)。当lua调用c函数的时候,这个函数会得到一个新的栈,这个栈独立于c函数本身的栈
2016-11-18 13:40:53 338
原创 太阳、地球、月亮
void display(void){glEnable(GL_DEPTH_TEST);glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glMatrixMode(GL_PROJECTION); //定义一个可视空间,其以外的物体不会绘制,实现近大远小的功能glLoadIdentity();glu
2016-11-17 09:15:51 390
原创 径向模糊实例
首先创建一个Material,给它添加一个纹理后将Material拖到新建的Plane上。如图所示,可以看出模糊效果是从中心点由内往外扩散。接下来脑子里有了步骤 步骤一:定义径向模糊的中心点,通常取图像的正中心点。 步骤二:计算采样像素与中心点的距离,根据距离确定偏移程度,即离中心点越远,偏移量越大。 步骤三:将采样点的颜色值做平均求和。【代码】
2016-11-16 20:05:32 476
转载 deviceQuery查看属性
在CUDA安装好后可以用DeviceQuery看一下GPU的相关属性,从而对GPU有一定了解,有助于今后的CUDA编程。#include "cuda_runtime.h"#include "device_launch_parameters.h"#include#include#includeint main(){ int deviceCount; cudaGetD
2016-11-15 15:55:05 2755
原创 高光反射-逐像素光照(Blinn-Phong)
Shader "Custom/testShader" {properties{ _Diffuse("my diffuse",Color) = (1,1,1,1) _Specular("my specular", Color) = (1,1,1,1) _Gloss("my gloss", Range(1, 256)) = 100} subshader{
2016-11-15 13:14:14 578
原创 高光反射-逐顶点光照
Shader "Custom/testShader" {properties{ _Diffuse("my diffuse",Color) = (1,1,1,1) _Specular("my specular", Color) = (1,1,1,1) //高光颜色 _Gloss("my gloss", Range(8.0, 256)) = 20
2016-11-14 21:04:43 508
原创 Ubuntu下通过SSH远程登录服务器并运行程序的方法
1. 首先在服务器上安装ssh的服务器端。$ sudo aptitude install openssh-server2. 启动ssh-server。$ /etc/init.d/ssh restart3. 确认ssh-server已经正常工作。$ netstat -tlptcp6 0 0 *:ssh *:* LISTEN -看到上面这一行输出说明ssh-serv
2016-11-14 15:19:01 2293 1
转载 OpenGL程序:实例练习
说起编程作图,大概还有很多人想起TC的#include 吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合。O
2016-11-14 12:09:28 16902 3
原创 windows下远程登录服务器
1. 准备:需要安装SSH Secure Shell Client软件进行两个系统间文件的互相操作;2. 登录:安装完成后,打开软件,点击如图“Quick Connect”,按步骤输入Host Name—User Name—Password,登陆成功,完毕。3. 测试:输入如图指令,可以查看gcc版本和CUDA版本
2016-11-14 09:49:18 771
转载 unity实现围绕星球走动
一、效果图 二、实现基本原理和代码1、原理通过小球检测向右前方发送射线,给小方块施加右前方的力,同时检测小方块射线检测当前到球的碰撞位置进行旋转。最后再给方块一个力让它球重心下落。2、代码[CSharp] view plain copyvoid Update () { GetCom
2016-11-13 11:38:43 2549
转载 OpenGL法线
法线前面的教程中我们一直在处理法线,但是并不知道法线到底是什么。##三角形法线一个平面的法线是一个长度为1并且垂直于这个平面的向量。 一个三角形的法线是一个长度为1并且垂直于这个三角形的向量。通过简单地将三角形两条边进行叉乘计算(向量a和b的叉乘结果是一个同时垂直于a和b的向量,还记得吗?),然后归一化:使长度为1。伪代码如下:triangle ( v1, v2,
2016-11-11 11:04:35 4676 1
转载 纹理映射
OpenGl 游戏编程笔记 第七章:纹理映射 (texture mapping) (一)本章你将学到纹理映射基础知识纹理坐标纹理对象及绑定纹理过滤mipmap和自动生成mipmap纹理参数, 外包模式, 细节级别纹理环境和纹理函数Table of Contents1 概述2 预备知识: 纹理坐标3 使用纹理映射3.1 纹理对象3.2 纹理绑定3.3
2016-11-10 20:37:13 484
转载 OpenGL缓冲区对象
一:为什么要有opengl缓冲区对象前面的顶点数组使得几何图元的显示方便了很多,但是如果每次都要向OPENGL发送一大块数据,而这数据其实并没有修改过,那么这传输就是冗余的。所以这里添加了缓冲区对象,将顶点数组存储在服务器端的缓冲区对象中。二:如何创建和使用缓冲区对象1.创建缓冲区对象 glGenBuffers():OpenGL分配n个当前未使用的名称(非 0
2016-11-10 19:16:47 499
原创 漫反射-逐像素光照(半兰伯特)
Shader "Custom/testShader" { properties { _Diffuse("my Diffuse",Color)=(1.0, 1.0, 0.0, 1.0) } subshader { Tags{"LightMode"="ForwardBase"} pass { CGPROGR
2016-11-10 14:16:41 596
原创 漫反射-逐顶点光照
Shader "Custom/testShader" {properties{ _Diffuse("my Diffuse",Color)=(1,0,0,1) //漫反射颜色}Subshader{ Tags{"LightMode"="ForwardBase" } pass { CGPROGRAM #
2016-11-10 13:10:17 395
转载 矩阵堆栈
1.原理讲解 终于明白为什么使用glPushMatrix()和glPopMatrix()的原因了。将本次需要执行的缩放、平移等操作放在glPushMatrix和glPopMatrix之间。glPushMatrix()和glPopMatrix()的配对使用可以消除上一次的变换对本次变换的影响。使本次变换是以世界坐标系的原点为参考点进行。下面对上述结论做进一步的解释:1)OpenGL中
2016-11-09 20:18:06 1171
转载 视图变换和模型变换/投影变换/视口变换
视图变换,是指变换照相机的位置,角度。 模型变换,是指变换被照物体的位置,角度。这两个变换,都会影响最终图形中,物体的位置,角度。而这两个变换,可以达到相同的效果。比如,你想要一个倒着的水杯图形,可以把你自己倒立,这样看到的水杯就是倒立的了。或者把水杯倒立,自己直立,也能看到倒立的水杯。 如图所示,这两种变换,可以看做达到目的的不同途径。甚至可以同时使用视图变换和模型变换,只
2016-11-09 18:25:11 1917
转载 转动的地球
Shader "Custom/testShader" {properties{ _MainTex("earth", 2D)="white"{} _Cloud("cloud", 2D)="white"{}}Subshader{ Tags{"Queue"="Transparent" "RenderType"="Transparnt"} pass
2016-11-09 17:55:59 415
原创 cube上显示一张贴图
Shader "Custom/testShader" {properties{ _MainTex("shitTexture",2D)="white"{} //定义的材质参数}subshader{ pass { CGPROGRAM #pragma vertex vert #pragma fragme
2016-11-09 17:20:35 745
原创 顶点着色器和片元着色器通信
Shader "Custom/testShader" { properties{ _Color ("my color", Color) = (1.0, 1.0, 0, 1.0) } subshader { pass{ CGPROGRAM #pragma vertex vert #pragma fragmen
2016-11-09 14:14:08 1574
转载 Shader基本概念
以下内容不需要入门的时候立刻阅读和理解,建议逐渐深入学习后,不时回来看看即可。什么是GPU?GPU:Graphic Processing Unit,中文翻译为“图形处理器”。显卡包括(GPU,显存,显卡BIOS,显卡PCB板)。什么是Shader?Shader程序:GPU执行的,针对3D对象进行操作的程序。Shader有哪几种?CG:与DirectX 9.0
2016-11-08 17:17:55 1790
转载 SM与SP
sp: 最基本的处理单元,streaming processor 最后具体的指令和任务都是在sp上处理的。GPU进行并行计算,也就是很多个sp同时做处理sm:多个sp加上其他的一些资源组成一个sm, streaming multiprocessor. 其他资源也就是存储资源,共享内存,寄储器等。warp:GPU执行程序时的调度单位,目前cuda的warp的大小为32,同在一个war
2016-11-08 09:41:48 22463
转载 线程同步
本文主要描述在C#中线程同步的方法。线程的基本概念网上资料也很多就不再赘述了。直接接入 主题,在多线程开发的应用中,线程同步是不可避免的。在.Net框架中,实现线程同步主要通过以下的几种方式来实现,在MSDN的线程指南中已经讲了几种,这里结合作者实际中用到的方式一起说明一下。1. 维护自由锁(InterLocked)实现同步2. 监视器(Monitor)和互斥锁(lock)3. 读写锁
2016-11-08 09:20:36 192
转载 hashset\hashtable\Dictionary
1.HashTable 哈希表(HashTable)表示键/值对的集合。在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key-value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key-value键值对均为object类型,所
2016-11-08 08:59:03 230
转载 法线纹理(贴图)Normal Mapping
法线贴图什么是法线贴图技术呢?这是一种用来实现3D效果的一种技术,要想理解这种技术还请您听我慢慢道来。 我们知道,在游戏中经常会有这样的情况,就是一个平面——这个平面在现实中并不是一个“平”面,例如砖墙的表面带有石质浮雕等等。这样的情况如果要求游戏开发人员将复杂的3D细节都做出来是不现实的,因为即使不计较在建模时候的复杂度,过多的3D细节也同样会大量消耗显示芯片的性能,让游戏根本没有
2016-11-07 19:06:49 2004
转载 自动分配座位
问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在
2016-11-07 15:45:32 4021
原创 OpenGL混合功能与抗锯齿
swith(value){ case 1: //打开抗锯齿glEnable(GL_BLEND);glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);glEnable(GL_POINT_SMOOTH);glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);glEnable(GL_LINE
2016-11-07 14:46:15 505
原创 OpenGL程序:使用裁剪框渲染一组三角形
#include#include#include#includevoid RenderScene(void){glClearColor(0.0f, 0.0f, 1.0f, 0.0f); //背景色glClear(GL_COLOR_BUFFER_BIT);glClearColor(1.0f, 0.0f, 0.0f, 0.0f); //外边框的矩形
2016-11-07 14:07:47 451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人