コード例 #1
0
        /// Renders one object.
        private void RenderObject(Object3D obj)
        {
            for (float u = 0.0f ; u < 1.0f ; u += 0.001f) {
                for (float v = 0.0f ; v < 1.0f ; v += 0.001f) {
                    V2 uv = new V2(u,v);
                    V3 p = obj.Point(uv);

                    V3 pScreen = new V3(
                        x: p.X,
                        y: Canvas.Height - p.Z,
                        z: p.Y
                    );
                    bool objectVisible = Set(pScreen);

                    if (objectVisible) {
                        Color illumination = Scene.IlluModel.Compute(
                            Scene.Lights, obj, p, uv
                        );

                        Canvas.DrawPixel(pScreen, illumination);
                    }
                }
            }
        }