diff --git a/src/BVH.zig b/src/BVH.zig index b7f3072..dee4d3b 100644 --- a/src/BVH.zig +++ b/src/BVH.zig @@ -10,7 +10,7 @@ const util = @import("util.zig"); const log = std.log.scoped(.BVH); -pub const BVH = @This(); +const BVH = @This(); const Ast = struct { left: ?*Node = null, diff --git a/src/Texture.zig b/src/Texture.zig new file mode 100644 index 0000000..eaee6ac --- /dev/null +++ b/src/Texture.zig @@ -0,0 +1,17 @@ +const zm = @import("zmath"); + +pub const SolidColor = struct { + albedo: zm.Vec, + + pub fn init(albedo: zm.Vec) SolidColor { + return .{ .albedo = albedo }; + } + + pub fn rgb(r: f32, g: f32, b: f32) SolidColor { + return init(zm.f32x4(r, g, b, 1.0)); + } + + pub fn value(self: *SolidColor, _: f32, _: f32, _: zm.Vec) zm.Vec { + return self.albedo; + } +}; diff --git a/src/hittable.zig b/src/hittable.zig index aad4551..2befe57 100644 --- a/src/hittable.zig +++ b/src/hittable.zig @@ -15,6 +15,8 @@ pub const HitRecord = struct { normal: zm.Vec = zm.f32x4s(1.0), mat: *Material, t: f32, + u: f32, + v: f32, front_face: bool = true, pub fn setFaceNormal(self: *HitRecord, r: *Ray, outward_normal: zm.Vec) void {