基于平行光,我们已经学习了三种基本光照模型(环境光、漫反射光和高光)。平行光是一种只有单一方向并且没有起点的灯光类型。因此,它不会随着距离增大而减弱(事实上,你甚至不能定义它与目标的距离)。我们来定义一下点光源,点光源有起点和衰减效果,并且当物体远离点光源时这种衰减效果变得更为明显。灯泡(light blub)其实就是一个点光源,在房间里你可能感受不到灯泡发出的光照的衰减效果;但是一到了室外,你会
现在已经介绍了Python语言的大部分基础知识。Python语言的核心非常强大,同时还提供了更多值得一试的工具。Python的标准安装中还包括一组模块,称为标准库(standard library)。之前已经介绍了一些模块(例如math和cmath,其中包括了用于计算实数和复数的数学函数),但是标准库还包含其他模块。本章将向读者展示这些模块的工作方式,讨论如何分析它们,学习它们所提供的功能。本章后
web应用是十分多样化的,为了实现某种应用,那哪种或哪些是最好的呢?或者说,对于web应用有没有一种最好的体系? 问题 你能配置一个单一的web体系去满足每个普通的web应用吗?包括一般性的界面呈现风格,身份验证,表单数据确认等等? 解决方案: MVC模式把你的软件组织架构分解成3个清晰的任务 model结合了应用数据,应用流程以及业务逻辑 view从model中提取数据并呈现出来 control
在一个应用软件的成型过程中,一些意想不到的商业逻辑到处出现。比如,基于价格的考虑,这个任务必须减少项目;而那个任务也因为销售税而必须选择合适的比率;而其它的任务也必须因为其他的特别条件而终止。一些商业规则是简单的,只需要不到一两个布尔比较关系就够了,然而它的规则可能需要费时的估计,需要查询数据库或者用户输入数据来引导。 通过书写代码可以把抽象(比如一条商业规则)转化为具体可见的东西。但是抽象物(比
第十二课:OpenGL扩展 扩展 GPU的性能随着更新换代一直在提高,支持渲染更多的三角形和像素点。然而,原始性能不是我们唯一关心的。NVIDIA, AMD和Intel也通过增加功能来改善他们的显卡。来看一些例子。 ARB_fragment_program 回溯到2002年,GPU都没有顶点着色器或片断着色器:所有的一切都硬编码在芯片中。这被称为固定功能流水线(Fixed-Function Pip
第十一课:2D文本 本课将学习如何在三维场景之上绘制二维文本。本例是一个简单的计时器: API 我们将实现这些简单的接口(位于common/text2D.h): void initText2D(const char * texturePath); void printText2D(const char * text, int x, int y, int size); voi
3D音效 本章将介绍如何在jME3中实现3D音效,了解音源(Audio Source)、音频侦听器(Audio Listener)、混响(Reverb)等概念及其应用。 jME3支持2种音频资源格式:WAV和OGG。使用OGG格式需要在项目中添加jme3-jogg类库的依赖: dependencies { compile 'org.jmonkeyengine:jme3-jogg:3.1.0
前面花了四章的时间完成了项目(wechat)的开发,并且也放到了线上。这篇来说说模块化的事情。 15.1 模块化的概念 对于通常的网站来说,一般我们不会把所有的js都写到一个文件中,因为当一个文件中的代码行数太多的话会导致维护性变差,因此我们常常会根据业务(页面)来组织js文件,比如全站都用到的功能,我就写一个base.js,只是在首页会用到的功能,就写一个index.js。这样的话我更改首页的逻
(警告:缺乏适当安全防护措施的CGI脚本可能会让您的网站陷入危险状态。本文中的脚本只是简单的样例,不保证在真实网站上使用的安全性。) CGI脚本是驻留在Web服务器上的脚本,而且可以被客户端(浏览器)运行。客户端通过脚本的URL来访问脚本,就像访问普通页面一样。服务器识别出请求的URL是一个脚本,于是就运行该脚本。服务器如何识别特定的URL为脚本取决于服务器的管理员。在本文中我们假设脚本都存放在一
描述 跨站脚本,或者 XSS,涉及到站定包含非预期的 JavaScript 脚本代码,它随后传给用于,用户在浏览器中执行了该代码。它的一个无害示例为: alert('XSS'); 这会调用 JavaScript 函数alert,并创建一个简单的弹出窗口,带有文本XSS。现在,在这本书的前一个版本中,我推荐你在报告中使用这个例子。但是,一个非常成功的黑客告诉我这是个糟糕的例子,因为漏洞的接收者通常
概述 φ4直通式节流阀是一种直通式流量控制阀,用于流量的调节和控制,手动旋钮控制调节,可完全锁定关闭。 尺寸图纸 搭建案例
Node 相对于大多数 web 技术还算是年轻的,这意味着没有现成和成熟的框架或应用系统可以直接上手使用,商业化还处于萌芽状态。反过来,这也能让开发者接触到较多的底层细节,如 HTTP 协议、进程模型、服务模型等,这些底层原理与其它现有技术并无实质上的差别。对于 Node 开发者而言,很多其它语言走过的路需要开发者带着 Node 特性重新去实践一遍。这并不是坏事,Node 更接近底层使得开发者对于
问题内容: 我正在使用uuid.uuid1()为我的所有MongoDB文档分配一个GUID。我想要一种导出11个字符的唯一,区分大小写的类YouTubeID的方法,例如 来自uuid的十六进制字符串,看起来像 我希望能够将缩短的ID动态匹配到十六进制,反之亦然,而不必在数据库中存储另一个字符串。有没有人有一些示例代码,或者可以指出我可以执行此操作的模块或公式的方向? 问题答案: 将基础字节转换为b
我试着从网上提取数据。很少有拉丁文字母是以纯十六进制形式出现的。 对于例如: 这个链接将变成 我怎么才能从这里得到拉丁字母。我想概括一下这一点,并对所有在我的数据帧中更改的拉丁字母都这样做。
There is a debugging console included with Smarty. The console informs you of all the included templates, assigned variables and config file variables for the current invocation of the template. A tem