Skip to content

Honey634546/Computer-Graphics

Repository files navigation

Computer-Graphics

在本次作业中, 需要实现一个简单的3D格网显示。所编写的程序除了显示物体的模型外,还要能让用户改变光的位置和物体的颜色。

本次作业要求你完整实现一个简单的2D样条曲线编辑器。该编辑器应支持Bezier曲线和B样条曲线, 可以实现两种曲线的转换(仅对四个控制点的双三次样条曲线)。在你的曲线程序能工作后,将转到由这些曲线来产生曲面:旋转曲面和双三次Bezier 片.

The goal of this assignment is to get familiar with C++ and with two simple libraries that we will use for linear algebra and images. The incidental goal is also to have fun with bizarre fractal objects. IFS are self-similar fractals: a subpart of the object is similar to the whole. The classic example of an IFS is Barnsley's fern, where each subpart of the fern is exactly the same as the whole fern. IFS are described by a set of affine transformations (rotations, translations, scale, skew, etc.) These transformations capture the self-similarity of the object. IFS can be defined in any dimension, but we will play with two-dimensional ones. Formally, an IFS is defined by n affine transformations. Each transformation fi must be contractive: The distance between points must be reduced. An attractor of the IFS is the object such that A = U fi (A). A is unchanged by the set of transformations: It is a fixed point.

这项任务的目的是熟悉C ++以及两个我们将用于线性代数和图像的简单库。附带的目标还在于玩弄奇异的分形物体。IFS是自相似的分形:对象的一个子部分与整体相似。IFS的经典示例是Barnsley的蕨类植物,其中蕨类植物的每个子部分与整个蕨类植物完全相同。IFS通过一组仿射变换(旋转,平移,缩放,倾斜等)来描述。这些变换捕获对象的自相似性。IFS可以在任何维度上定义,但是我们将使用二维维度。形式上,IFS由n个仿射变换定义。每个转换˚F 我必须具有收缩性:点之间的距离必须减小。IFS 的吸引子是使A = U f i(A)的对象。A通过变换集保持不变:这是一个固定点。

In this assignment, you will implement a basic ray caster. This will be the basis of many future assignments, so proper code design is quite important. As seen in class, a ray caster sends a ray for each pixel and intersects it with all the objects in the scene. You will implement a ray caster for an orthographic camera (parallel rays) for sphere primitives. You will use a very basic shading model: the objects have a constant color. You will also implement a visualization mode to display the distance t of each pixel to the camera.