在前面一节中我们学习了 shadow mapping 的基本原理,并且介绍了如何将深度信息渲染到一张纹理上面并最终通过从深度缓存中进行采样而将其渲染到屏幕上面。在这一节中我们将会介绍如何使用这个功能来创建真正的阴影。 我们知道 shadow mapping 是一个二次渲染技术,在第一次渲染过程中场景的渲染是从光源角度出发的。让我们回顾一下在第一次渲染时位置向量的 Z 分量的发生了什么: 传入顶点着
本文向大家介绍整理java读书笔记十五之java中的内部类,包括了整理java读书笔记十五之java中的内部类的使用技巧和注意事项,需要的朋友参考一下 内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。 *内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default
在这本书中,我们提到了驱使 Django 发展的很多目标。易用,对初学者友好,重复任务的抽象, 这些都驱使着 Django 继续发展。 然而,从 Django 一开始,就有另一个重要的目标:Django 应该容易被部署,并且它应该能够用 有限的资源提供大量的服务。 这样的动机是很明显的,当你看到 Django 的背景:堪萨斯州一个小巧的、家族式报纸企业 负担不起高品质的服务器硬件,所以 Djang
不管你是正在处理一个用户坐在键盘前面键入的命令还是处理别人通过网络发送过来的 信息,你都需要仔细注意到达你的程序里的数据,因为其他人可能有意无意地给你发送 一些有害无益的数据。Perl 提供一种特殊的安全检查机制,叫感染模式,它的目的就是 隔离感染了的数据,这样你就不会把这些数据误用于一些不该用的场合。比如,如果你 了一个感染了的文件名,结果就有可能向你的口令文件里增加记录,而你还认为是一个日志
12.5.1 通过 @ISA 继承 如果 @ISA 包含多于一个包的名字,包的搜索都是从左向右的顺序进行的。这些搜索是由浅 入深的,因此,如果你有一个 Mule 类有象下面这样的继承关系: package Mule; our @ISA= ("Horse", "Donkey"); Perl 将首先在 Horse 里(和他的任何前辈类里,比如 Critter)查找任何在 Mule 里找
首先,你需要理解包和模块;请看第十章,包,和第十一章,模块。你还需要知道引用和 数据结构;参阅第八章,引用和第九章,数据结构。同样,知道一些面向对象的编程方法 (OOP)也是很有用的,所以下一节开始我们给就 OOL(面向对象的语言)上一小节课。 12.1 简单复习一下面向对象的语言 对象是一个数据结构,带有一些行为。我们通常把这些行为称为对象的直接动作,有时候 可以把这些对象拟人化。比如,我们可能
在这篇 Matplotlib 教程中,我们继续使用Basemap地理绘图扩展。 我们将展示一些我们可用的自定义选项。 首先,从上一个教程中获取我们的起始代码: from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt m = Basemap(projection='mill') m.drawcoastlines
在这篇 Matplotlib 教程中,我们将介绍如何在同一子图上使用多个 Y 轴。 在我们的例子中,我们有兴趣在同一个图表及同一个子图上绘制股票价格和交易量。 为此,首先我们需要定义一个新的轴域,但是这个轴域是ax2仅带有x轴的『双生子』。 这足以创建轴域了。我们叫它ax2v,因为这个轴域是ax2加交易量。 现在,我们在轴域上定义绘图,我们将添加: ax2v.fill_between(date[-
在这个 Matplotlib 数据可视化教程中,我们将讨论sharex选项,它允许我们在图表之间共享x轴。将sharex看做『复制 x』也许更好。 在我们开始之前,首先我们要做些修剪并在另一个轴上设置最大刻度数,如下所示: ax2.yaxis.set_major_locator(mticker.MaxNLocator(nbins=7, prune='upper')) 以及 ax3.yaxis.se
在本教程中,我们将介绍一些更多的自定义,比如颜色和线条填充。 我们要做的第一个改动是将plt.title更改为stock变量。 plt.title(stock) 现在,让我们来介绍一下如何更改标签颜色。 我们可以通过修改我们的轴对象来实现: ax1.xaxis.label.set_color('c') ax1.yaxis.label.set_color('r') 如果我们运行它,我们会看到标签改变
本章包含创建一个django程序最必不可少的步骤 在服务器上部署它 如果你一直跟着我们的例子做,你可能正在用runserver 但是runserver 要部署你的django程序,你需要挂接到工业用的服务器 如:Apache 在本章,我们将展示如何做,但是,在做之前我们要给你一个(要做的事的)清单. 准备你的代码库 很幸运,runserver 但是,在开始前,有一些** 关闭Debug模式. 我们
从这一章我们开始 JSP 的学习之旅,还是和前面一样,先给大家讲解 JSP 的基础之后就开始我们的黑客技术的研究,并通过代码的分析从中找出 JSP 程序的漏洞。如果大家有 JAVA基础,那么学习 JSP 会感到比较轻松;如果没有学过 JAVA 也没有关系,跟着我的思路一样可以很好的完成 JSP 的基础学习。 大家如果注意观察的话,会发现使用 JSP 的网站数目在逐渐的增加,如图 12-1 所示,利
第十一章介绍了window对象及其客户端javascript所扮演的核心角色:它是客户端javascript程序的全局对象。本章介绍window对象的属性和方法,这些属性定义了不同的API,但是只有一部分实际上和浏览器窗口相关。window对象是以窗口命名的。 1节展示如何使用setTimeout()和setInterval()来注册一个函数,并在指定的时间后调用它。 2节讲述如何使用locati
基于平行光,我们已经学习了三种基本光照模型(环境光、漫反射光和高光)。平行光是一种只有单一方向并且没有起点的灯光类型。因此,它不会随着距离增大而减弱(事实上,你甚至不能定义它与目标的距离)。我们来定义一下点光源,点光源有起点和衰减效果,并且当物体远离点光源时这种衰减效果变得更为明显。灯泡(light blub)其实就是一个点光源,在房间里你可能感受不到灯泡发出的光照的衰减效果;但是一到了室外,你会
第十二课:OpenGL扩展 扩展 GPU的性能随着更新换代一直在提高,支持渲染更多的三角形和像素点。然而,原始性能不是我们唯一关心的。NVIDIA, AMD和Intel也通过增加功能来改善他们的显卡。来看一些例子。 ARB_fragment_program 回溯到2002年,GPU都没有顶点着色器或片断着色器:所有的一切都硬编码在芯片中。这被称为固定功能流水线(Fixed-Function Pip