<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>programming &#8211; 扫地老僧的Blog</title>
	<atom:link href="https://doyj.com/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>https://doyj.com</link>
	<description>Laputa - 远方地平线，闪耀着光芒</description>
	<lastBuildDate>Sun, 20 Oct 2013 14:52:35 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>
	<item>
		<title>14年前做的一个NURBS Demo</title>
		<link>https://doyj.com/2013/10/20/</link>
					<comments>https://doyj.com/2013/10/20/#respond</comments>
		
		<dc:creator><![CDATA[oldmonk]]></dc:creator>
		<pubDate>Sun, 20 Oct 2013 14:52:35 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[NURBS]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">http://www.doyj.com/?p=1964</guid>

					<description><![CDATA[最近整理文件，发现14年前的NURBS Demo居然在Win 7下还能很好运行，速度比当年快了很多。 当时研究 &#8230; <a href="https://doyj.com/2013/10/20/" class="more-link">继续阅读<span class="screen-reader-text">14年前做的... ]]></description>
										<content:encoded><![CDATA[<p>最近整理文件，发现14年前的NURBS Demo居然在Win 7下还能很好运行，速度比当年快了很多。</p>
<p>当时研究在3D游戏中，采用NURBS建模的模型。根据相机与物体的位置，实时演算生成模型的三角形。 离相机远的部分，三角形就少，节省渲染时间，离相机近的就三角形多，细节更丰富些。说起来很理想，但实现起来有好几个难点：</p>
<ol>
<li>NURBS Trim的问题<br />
NURBS曲面中挖洞的方法是用NURBS曲线去描述这个洞，如何快速在游戏中实现是个难点。这是我当时主要攻关的问题。当时找出两个方法，一个是根据相机距离远近，及曲线不同段的曲率，不断调整切分Nurbs Trim曲线的不同段的粒度。一个是另辟蹊径，给3DS MAX开发了一个插件，能在编辑NURBS曲面时，同时生成一个合并了原有材质且带Alpha通道的高精度材质图片, 在Nurbs Trim 曲线以内的alpha通道都是透明的。</li>
<li>NURBS编辑工具的问题<br />
当时公司用的NURBS编辑工具主要是3DS MAX，虽然是有较强的NURBS曲面编辑功能，但实际生成的NURBS曲面问题很多，远不如同期的Rhino，可Rhino当时对插件之类的二次开发支持又很不好。</li>
<li>NURBS曲面在随着相机距离而调整模型的过程中，物体的边缘，会在屏幕上产生抖动感。<br />
这个问题相当难以克服，一直没能解决。</li>
</ol>
<p>当时有宣传用NURBS的游戏，例如Quake3，其实它只是在建模中使用了NURBS，并没有做到实时的生成模型。当时整个游戏界对NURBS抱有很高的期望，有显卡公司想从硬件层面给予解决，但后来都没了消息，再后来也就没再关注这方面的进展，不知现在怎样。不过现在的显卡能力已经超强，不用NURBS技术，就靠堆三角形已经能实现近乎真实的画面效果了。</p>
<p>下面是Demo的两个截图，大家可以看到这个鸭子的三角形数量在两个图里是不同的。在同一个图中，鸭子不同部位切分的细节程度也是不同的， 整个鸭子上的三角形都是每帧都重新实时生成的。</p>
<p>当时为了搞这个，读了很多SIGRAPH，MSR，及各大学关于NURBS的论文，对自己提高帮助很大。</p>
<p><a href="http://www.doyj.com/wp-content/uploads/2013/10/1.png"><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-1966" alt="1" src="http://www.doyj.com/wp-content/uploads/2013/10/1.png" width="822" height="588" srcset="https://doyj.com/wp-content/uploads/2013/10/1.png 822w, https://doyj.com/wp-content/uploads/2013/10/1-300x214.png 300w" sizes="(max-width: 822px) 100vw, 822px" /></a><a href="http://www.doyj.com/wp-content/uploads/2013/10/1-2.jpg"><img decoding="async" class="alignnone size-full wp-image-1967" alt="1-2" src="http://www.doyj.com/wp-content/uploads/2013/10/1-2.jpg" width="822" height="588" srcset="https://doyj.com/wp-content/uploads/2013/10/1-2.jpg 822w, https://doyj.com/wp-content/uploads/2013/10/1-2-300x214.jpg 300w" sizes="(max-width: 822px) 100vw, 822px" /></a></p>
<p>&nbsp;</p>
<p>这个demo的下载链接是 <a href="http://www.nihuo.com/downloads/nv.zip">http://www.nihuo.com/downloads/nv.zip</a>。</p>
<p>下载下来demo后解压，选择File -&gt;Open, 打开NRB_DUCK.oo就能看到鸭子， 按下F键就能看到三角形的线框，按鼠标右键能旋转模型， 按&lt;, &gt;能调整模型切分的系数。更详细的可参看readme。屏幕左上角的tri是整个模型的三角形数量。因为主要是为了演示NURBS一些关键算法的效果，其他方面都很粗糙，还请见谅。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://doyj.com/2013/10/20/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Nginx模块开发教程</title>
		<link>https://doyj.com/2013/10/18/</link>
					<comments>https://doyj.com/2013/10/18/#respond</comments>
		
		<dc:creator><![CDATA[oldmonk]]></dc:creator>
		<pubDate>Fri, 18 Oct 2013 14:58:29 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">http://www.doyj.com/?p=1961</guid>

					<description><![CDATA[做Nginx模块开发的时候，发现这方面的文档很少， 磕磕绊绊走了不少弯路。 过了两年，发现有点改善，但不算大。 &#8230; <a href="https://doyj.com/2013/10/18/" class="more-link">继续阅读<span class="screen-reade... ]]></description>
										<content:encoded><![CDATA[<p>做Nginx模块开发的时候，发现这方面的文档很少， 磕磕绊绊走了不少弯路。 过了两年，发现有点改善，但不算大。 昨天有人问能不能教他简单的Nginx开发入门，本想在网上给他找个教程的，结果没找到太合适的，于是干脆自己写了个简单的教程。主要是入门代码和一些资料的索引。有两个例子， 一个是Hello World， 就是访问URL显示Hellow World， 一个是Hello World Text, 就是可以通过配置文件来定义显示的欢迎信息。 教程地址是 <a title="Nginx模块开发教程" href="https://github.com/nihuo/Nginx-Module-Development-Tutorial">https://github.com/nihuo/Nginx-Module-Development-Tutorial</a>。 看完这个教程应该就会知道如何开始写Nginx模块，如何解析参数，如何输出。</p>
<p>这个教程是给Nginx模块开发的初学者的。其实我自己也是个初学者，之前正式开发过的模块只有两个，是抱着和大家一起学习的态度写这个教程的。 尝试分享给别人其实也是自己整理旧知识学习新知识的很好过程， 发现了不少自己以前认识错误的地方，狂汗。 当然，现在写的例子，估计问题还是不少，算是抛砖引玉，欢迎大家多多批评指教。</p>
<p>以后有空的时候还会再添加例子，也欢迎大家来编辑添加。 Nginx不只是个Web Server，其实是个很好的高性能服务器二次开发平台， 希望能通过这个教程让更多人认识Nginx巨大的二次开发潜力。</p>
<p>整个教程是用英文写得，为了锻炼自己的英文，可能会让英语大牛们贻笑大方，笑过后，不妨耐心指正，将不胜感激。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://doyj.com/2013/10/18/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
