aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--build.zig9
m---------deps/zigimg0
-rw-r--r--src/main.zig26
-rw-r--r--src/rtw/hittable.zig8
-rw-r--r--src/rtw/material.zig2
-rw-r--r--src/rtw/perlin.zig2
-rw-r--r--src/rtw/texture.zig4
-rw-r--r--src/rtw/vec.zig2
8 files changed, 30 insertions, 23 deletions
diff --git a/build.zig b/build.zig
index 08235d1..4e02250 100644
--- a/build.zig
+++ b/build.zig
@@ -24,7 +24,14 @@ pub fn build(b: *std.Build) void {
.optimize = optimize,
});
- exe.addAnonymousModule("zigimg", .{ .source_file = .{ .path = "deps/zigimg/zigimg.zig" } });
+ exe.root_module.addAnonymousImport(
+ "zigimg",
+ .{
+ .root_source_file = .{
+ .path = "deps/zigimg/zigimg.zig",
+ },
+ },
+ );
// This declares intent for the executable to be installed into the
// standard location when the user invokes the "install" step (the default
diff --git a/deps/zigimg b/deps/zigimg
-Subproject 40ddb16fd246174545b7327a12dce7f0889ada7
+Subproject 637974e2d31dcdbc33f1e9cc8ffb2e46abd2e21
diff --git a/src/main.zig b/src/main.zig
index 7ffd9b7..d6b1131 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -145,8 +145,8 @@ fn generateTwoSpheres(rng: Random, allocator: anytype) !Hittable {
var hittable_objects = ArrayList(Hittable).init(allocator);
const checker = try Texture.makeChecker(allocator, rgb(0.2, 0.3, 0.1), rgb(0.9, 0.9, 0.9));
- var mat1 = try allocator.create(Material);
- var mat2 = try allocator.create(Material);
+ const mat1 = try allocator.create(Material);
+ const mat2 = try allocator.create(Material);
mat1.* = .{ .diffuse = .{ .albedo = checker } };
mat2.* = .{ .diffuse = .{ .albedo = checker } };
@@ -161,8 +161,8 @@ fn generateTwoPerlinSpheres(rng: Random, allocator: anytype) !Hittable {
var hittable_objects = ArrayList(Hittable).init(allocator);
const perlin = try Texture.makeNoise(allocator, 4.0, rng);
- var mat1 = try allocator.create(Material);
- var mat2 = try allocator.create(Material);
+ const mat1 = try allocator.create(Material);
+ const mat2 = try allocator.create(Material);
mat1.* = .{ .diffuse = .{ .albedo = perlin } };
mat2.* = .{ .diffuse = .{ .albedo = perlin } };
@@ -176,10 +176,10 @@ fn generateTwoPerlinSpheres(rng: Random, allocator: anytype) !Hittable {
fn generateRandomScene(rng: Random, allocator: anytype) !Hittable {
var hittable_objects = ArrayList(Hittable).init(allocator);
- var mat_ground = try allocator.create(Material);
- var mat1 = try allocator.create(Material);
- var mat2 = try allocator.create(Material);
- var mat3 = try allocator.create(Material);
+ const mat_ground = try allocator.create(Material);
+ const mat1 = try allocator.create(Material);
+ const mat2 = try allocator.create(Material);
+ const mat3 = try allocator.create(Material);
const checker = try Texture.makeChecker(allocator, rgb(0.2, 0.3, 0.1), rgb(0.9, 0.9, 0.9));
@@ -208,7 +208,7 @@ fn generateRandomScene(rng: Random, allocator: anytype) !Hittable {
continue;
}
- var mat_sphere = try allocator.create(Material);
+ const mat_sphere = try allocator.create(Material);
if (choose_mat < 0.8) {
// diffuse
const albedo = Color.random01(rng).mulV(Color.random01(rng));
@@ -243,7 +243,7 @@ fn generateEarthScene(allocator: anytype) !Hittable {
var hittable_objects = ArrayList(Hittable).init(allocator);
const earth_texture = try Texture.makeImage(allocator, "assets/sekaichizu.png");
- var earth_surface = try allocator.create(Material);
+ const earth_surface = try allocator.create(Material);
earth_surface.* = .{ .diffuse = .{ .albedo = earth_texture } };
@@ -256,8 +256,8 @@ fn generateSimpleLightScene(rng: Random, allocator: anytype) !Hittable {
var hittable_objects = ArrayList(Hittable).init(allocator);
const perlin = try Texture.makeNoise(allocator, 4.0, rng);
- var mat1 = try allocator.create(Material);
- var mat2 = try allocator.create(Material);
+ const mat1 = try allocator.create(Material);
+ const mat2 = try allocator.create(Material);
mat1.* = .{ .diffuse = .{ .albedo = perlin } };
mat2.* = .{ .diffuse = .{ .albedo = perlin } };
@@ -317,7 +317,7 @@ pub fn main() !void {
defer debug.assert(gpa.deinit() == .ok);
var rng_ = std.rand.DefaultPrng.init(42);
- var rng = rng_.random();
+ const rng = rng_.random();
// Image
var aspect_ratio: f64 = 3.0 / 2.0;
diff --git a/src/rtw/hittable.zig b/src/rtw/hittable.zig
index 3945192..c47d9ff 100644
--- a/src/rtw/hittable.zig
+++ b/src/rtw/hittable.zig
@@ -164,7 +164,7 @@ const Sphere = struct {
}
fn getSphereUv(p: Point3, u: *f64, v: *f64) void {
- const phi = math.atan2(f64, -p.z, p.x) + pi;
+ const phi = math.atan2(-p.z, p.x) + pi;
const theta = math.acos(-p.y);
u.* = phi / (2.0 * pi);
v.* = theta / pi;
@@ -303,7 +303,7 @@ const BvhNode = struct {
var left: *Hittable = undefined;
var right: *Hittable = undefined;
- var objects_ = objects;
+ const objects_ = objects;
const axis = randomInt(u8, 0, 3);
const object_span = end - start;
@@ -325,8 +325,8 @@ const BvhNode = struct {
right.* = .{ .bvhNode = BvhNode.init(objects, mid, end, time0, time1) };
}
- var box_left: Aabb = undefined;
- var box_right: Aabb = undefined;
+ const box_left: Aabb = undefined;
+ const box_right: Aabb = undefined;
if (!left.boudingBox(time0, time1, box_left) || !right.boudingBox(time0, time1, box_right)) {
// ERROR
diff --git a/src/rtw/material.zig b/src/rtw/material.zig
index 311e5af..c1f33ee 100644
--- a/src/rtw/material.zig
+++ b/src/rtw/material.zig
@@ -125,6 +125,6 @@ fn reflect(v: Vec3, n: Vec3) Vec3 {
fn refract(uv: Vec3, n: Vec3, etai_over_etat: f64) Vec3 {
const cos_theta = @min(uv.mul(-1.0).dot(n), 1.0);
const r_out_perpendicular = uv.add(n.mul(cos_theta)).mul(etai_over_etat);
- const r_out_parallel = n.mul(-@sqrt(@fabs(1.0 - r_out_perpendicular.normSquared())));
+ const r_out_parallel = n.mul(-@sqrt(@abs(1.0 - r_out_perpendicular.normSquared())));
return r_out_perpendicular.add(r_out_parallel);
}
diff --git a/src/rtw/perlin.zig b/src/rtw/perlin.zig
index 39173cd..77a075d 100644
--- a/src/rtw/perlin.zig
+++ b/src/rtw/perlin.zig
@@ -88,7 +88,7 @@ pub const Perlin = struct {
weight *= 0.5;
p_ = p_.mul(2.0);
}
- return @fabs(accum);
+ return @abs(accum);
}
fn permute(rng: Random, p: []usize, n: usize) void {
diff --git a/src/rtw/texture.zig b/src/rtw/texture.zig
index 4095a9c..ff17579 100644
--- a/src/rtw/texture.zig
+++ b/src/rtw/texture.zig
@@ -67,8 +67,8 @@ pub const CheckerTexture = struct {
even: *const Texture,
fn init(allocator: std.mem.Allocator, odd: Texture, even: Texture) !CheckerTexture {
- var odd_ = try allocator.create(Texture);
- var even_ = try allocator.create(Texture);
+ const odd_ = try allocator.create(Texture);
+ const even_ = try allocator.create(Texture);
odd_.* = odd;
even_.* = even;
return .{
diff --git a/src/rtw/vec.zig b/src/rtw/vec.zig
index 9b2c3f0..74864f1 100644
--- a/src/rtw/vec.zig
+++ b/src/rtw/vec.zig
@@ -97,7 +97,7 @@ pub const Vec3 = struct {
pub fn near_zero(v: Vec3) bool {
const epsilon = 1e-8;
- return @fabs(v.x) < epsilon and @fabs(v.y) < epsilon and @fabs(v.z) < epsilon;
+ return @abs(v.x) < epsilon and @abs(v.y) < epsilon and @abs(v.z) < epsilon;
}
};