⑨chu ⑨chu
关注数: 31 粉丝数: 338 发帖数: 13,078 关注贴吧数: 18
【坑爹】git-http-backend for nginx服务器配置 server { listen 8000; server_name localhost; access_log /var/log/nginx/gitrepos.access.log; error_log /var/log/nginx/gitrepos.error.log; location ~ (/.*) { gzip off; #root /usr/lib/git-core; #fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; #fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param REMOTE_USER www-data; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param DOCUMENT_ROOT /usr/lib/git-core/; fastcgi_param SCRIPT_NAME git-http-backend; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /home/pi/gitrepos; fastcgi_param PATH_INFO $1; #fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_pass unix:/var/run/fcgiwrap.socket; } } 红字部分指明要修改的参数 黑字部分指明fcgiwrap 坑爹之处: 1、git自带的git-http-backend不支持fastcgi,需要自行安装fcgiwrap(或者自行编译); e.g.: sudo apt-get install fcgiwrap 2、nginx的fastcig参数非常奇葩,如果直接 include fastcgi_param; 可能无法正常配置; 3、CGI参数 REMOTE_USER必须定义为你的git版本库的拥有账户,否则在TortoiseGit出现403错误; 4、PATH_INFO中的$1指明匹配地址 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.xxx.com&urlrefer=f8c78bb5db6c9a8a249018a6a172f1be /myproj.git 中的红字部分,注意PATH_INFO必须以/开头;
标题是什么 能吃么 shader部分看上去相当麻烦。 拿光照为例,可以写成前向光照(对一个对象施加的一组光照)和延迟光照(对一组对象施加的一组光照) 阴影部分又可以写成几种 然后还有特定对象的shader效果,比如gpu粒子系统。 此外材质到底应该包括哪些数据,比如漫射光,反射光,这些参数会被光照shader需要,而对于normalmap,材质部分可能又要包含其他东西。 然后shader的结合。比如骨骼动画模型和静态模型的vertexshader又是完全不同的。难道写一个延迟光照要抄一遍各种代码? _(:3ノ∠)_ 麻烦 顺便摘一些想法。 1. Scene部分完成场景剔除,筛选出所有需要渲染的对象以及相关的光源信息,提交对象和摄像机信息到渲染器 2. 渲染器依据材质信息排序并筛选出透明对象(该操作可在剔除数据发生变化时执行)。 3. 前期shader,此时执行特定对象的shader,该阶段完成如粒子系统和水波的预处理 4. (每个对象务必提供延迟光照的前期数据采集用shader和前向光照shader)使用延迟光照渲染所有非透明物体,采集法线位置等信息。此时物体可以施加的效果有: 骨骼动画,凹面 贴图等 5. 对所有预设灯光执行延迟光照 6. 对半透明物体进行排序并采用前向光照shader渲染 7. 后期效果,该部分可以执行hdr bloom blur等效果。 如上,但是不清楚阴影效果在哪个阶段引入(也许是5.6和6.7?) 对于大部分对象,似乎上面的方法可行,但是诸如卡通渲染又要怎么套在上面的流程中呢。。233
【原创】DX学习的几点建议和说明 声明:本文DX特指D3D Q:我要学哪个版本的DX? A:刚开始还是建议从DX9开始学习,尽管从DX10开始构架发生了巨大变化。但是由于剔除了固定渲染管线以及追加了各种状态对象,写起来会很繁杂,不太适合入门。所以用DX9学号Shader再去用DX10/11吧。 Q:我要装哪个版本的DX SDK? A:最新的,没事可以点开看看DX9/10/11的各种例程。截止发帖最新的好像还是June2010版本的。具体请到M$官网下载。 Q:学习DX需要掌握哪些基础功? A:主要是数学,高中数学不要忘了,然后高等数学和线性代数的一些基础知识都要了解。大部分情况下轮不到你去推导各种公式(比如各种投影矩阵),但是知道公式怎么来的还是很有好处的。其次英文水平还是很重要,在不懂的时候查MSDN是最好的途径,那么看不懂英文就糟糕了。不要指望谷歌机翻,不懂的时候用有道什么的查个单词还好。 Q:安装DXSDK时出现S1023错误怎么办? A:这是由于安装的C++运行时高于DXSDK要求导致的BUG。可以无视之,不影响运行。 Q:GL和DX怎么选择? A:GL适合嵌入端,DX适合PC。不过你要开发非WIN平台的就只有GL了。一般而言掌握一种API就很容易掌握另一种了。 说到底DX只是个图形API,更多时候都是些应用性问题,比如场景管理一类的,那就更头疼了。
我来组成经验 图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3图片来自: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fxiangce.baidu.com%2Fpicture%2Falbum%2Flist%2F71709822942456f2cf03146dc47fbf389945eaa1&urlrefer=52d13afa8f7b390c594b86f9bc8866f3
渲染器接口 留档 // 纹理接口 struct f2dTexture : public f2dInterface { // 是否为动态纹理 virtual fBool IsDynamic()=0; // 是否为渲染目标 virtual fBool IsRenderTarget()=0; // 获得宽度 virtual fuInt GetWidth()=0; // 获得高度 virtual fuInt GetHeight()=0; // 锁定动态纹理并进行编辑 virtual fResult Lock(fcyRect* pLockRect, fBool Discard, fuInt* Pitch, fData* pOut)=0; // 解锁动态纹理 virtual fResult Unlock()=0; }; // 深度模板缓冲 struct f2dZStencilBuffer : public f2dInterface { // 获得宽度 virtual fuInt GetWidth()=0; // 获得高度 virtual fuInt GetHeight()=0; }; // 效果参数 struct f2dEffectParam { // 返回效果类型(值、数组、结构体等) virtual F2DEPTYPE GetType()=0; // 返回值类型 virtual F2DEPVALUETYPE GetValueType()=0; // 返回标注名称 virtual fcStr GetSemantic()=0; // 返回成员个数(数组元素个数或者结构体成员数) virtual fuInt GetElementCount()=0; // 返回数组维数 virtual fuInt GetArrDimension()=0; // 返回数组各维下标 virtual fuInt GetArrIndex(fuInt Dimension)=0; // 返回嵌套的子对象 virtual f2dEffectParam* GetSubParam(fcStr ParamName)=0; virtual f2dEffectParam* GetSubParam(fuInt Index)=0; // 返回值 virtual fFloat GetValueF()=0; virtual fInt GetValueI()=0; virtual fBool GetValueB()=0; // 设置值 virtual void SetValue(fFloat Value)=0; virtual void SetValue(fInt Value)=0; virtual void SetValue(fBool Value)=0; // 返回数组 virtual void GetArrF(fuInt Count, fFloat* pOut)=0; virtual void GetArrI(fuInt Count, fInt* pOut)=0; virtual void GetArrB(fuInt Count, fBool* pOut)=0; // 设置数组 virtual fuInt SetArrF(fuInt Count, const fFloat* pIn)=0; virtual fuInt SetArrI(fuInt Count, const fInt* pIn)=0; virtual fuInt SetArrB(fuInt Count, const fBool* pIn)=0; // 返回纹理 virtual f2dTexture* GetTexture()=0; // 设置纹理 virtual void SetTexture(f2dTexture* pTex)=0; }; // 效果接口 struct f2dEffect : public f2dInterface { // 获得参数数量 virtual fuInt GetParamCount()=0; // 获得参数 virtual f2dEffectParam* GetParam(fcStr ParamName)=0; virtual f2dEffectParam* GetParam(fuInt Index)=0; // 获得Technique数量 virtual fuInt GetTechniqueCount()=0; }; // Mesh接口 struct f2dMesh : public f2dInterface { // ... }; // 渲染器接口 struct f2dGraphics : public f2dInterface { // 是否为3D渲染器,否则为2D渲染器 virtual fBool IsGraphics3D()=0; // === 渲染过程控制 === // 检查是否处于Begin/End区段 virtual fResult IsInRender()=0; // 启动渲染器并完成状态同步 virtual fResult Begin()=0; // 立即递交渲染队列 virtual fResult Flush()=0; // 结束渲染过程并递交渲染队列 virtual fResult End()=0; // === 渲染状态控制 === // 返回世界变换矩阵 virtual const fcyMatrix4& GetWorldTransform()=0; // 返回观察矩阵 virtual const fcyMatrix4& GetLookatTransform()=0; // 返回投影矩阵 virtual const fcyMatrix4& GetProjTransform()=0; // 设置世界变换矩阵 virtual void SetWorldTransform(const fcyMatrix4& Mat)=0; // 设置观察矩阵 virtual void SetLookatTransform(const fcyMatrix4& Mat)=0; // 设置投影矩阵 virtual void SetProjTransform(const fcyMatrix4& Mat)=0; // === 混合状态控制 === // 返回像素混合参数 virtual const fcyBlendState& GetBlendState()=0; // 设置像素混合参数 virtual void SetBlendState(const fcyBlendState& State)=0; }; // 2D渲染器 struct f2dGraphics2D : public f2dGraphics { // === 混合参数 === // 返回纹理混合参数 virtual const fcyTexBlendState& GetTexBlendState()=0; // 设置纹理混合参数 virtual void SetTexBlendState()=0; // === 2D绘制函数 === // 绘制矩形 virtual fResult DrawQuad( f2dTexture* pTex, const f2dGraphics2DVertex& v1, const f2dGraphics2DVertex& v2, const f2dGraphics2DVertex& v3, const f2dGraphics2DVertex& v4 )=0; // 绘制矩形 virtual fResult DrawQuad(f2dTexture* pTex, const f2dGraphics2DVertex* arr)=0; // 原始绘制函数 virtual fResult DrawRaw(f2dTexture* pTex, fuInt VertCount, fuInt IndexCount, const f2dGraphics2DVertex* VertArr, const fuShort* IndexArr)=0; }; // 3D渲染器 struct f2dGraphics3D : public f2dGraphics { // 返回当前渲染程序 virtual f2dEffect* GetCurEffect()=0; // 设置当前渲染程序 virtual fResult SetCurEffect(f2dEffect* Effect)=0; // 返回Technique名称 virtual fcStr GetCurTechnique()=0; // 设置Technique名称 virtual fResult SetCurTechnique(fcStr TechniqueName)=0; };
首页 1 2 下一页