From dd2dca2f7e77e7521d13b78e875ffa58a90846f2 Mon Sep 17 00:00:00 2001 From: Martijn Berger Date: Fri, 7 Mar 2014 23:16:09 +0100 Subject: Add support for multiple interpolation modes on cycles image textures All textures are sampled bi-linear currently with the exception of OSL there texture sampling is fixed and set to smart bi-cubic. This patch adds user control to this setting. Added: - bits to DNA / RNA in the form of an enum for supporting multiple interpolations types - changes to the image texture node drawing code ( add enum) - to ImageManager (this needs to know to allocate second texture when interpolation type is different) - to node compiler (pass on interpolation type) - to device tex_alloc this also needs to get the concept of multiple interpolation types - implementation for doing non interpolated lookup for cuda and cpu - implementation where we pass this along to osl ( this makes OSL also do linear untill I add smartcubic to the interface / DNA/ RNA) Reviewers: brecht, dingto Reviewed By: brecht CC: dingto, venomgfx Differential Revision: https://developer.blender.org/D317 --- intern/cycles/device/device_network.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'intern/cycles/device/device_network.cpp') diff --git a/intern/cycles/device/device_network.cpp b/intern/cycles/device/device_network.cpp index bffd993818f..8f00324c3e1 100644 --- a/intern/cycles/device/device_network.cpp +++ b/intern/cycles/device/device_network.cpp @@ -162,7 +162,7 @@ public: snd.write_buffer(host, size); } - void tex_alloc(const char *name, device_memory& mem, bool interpolation, bool periodic) + void tex_alloc(const char *name, device_memory& mem, InterpolationType interpolation, bool periodic) { thread_scoped_lock lock(rpc_lock); @@ -559,7 +559,7 @@ protected: else if(rcv.name == "tex_alloc") { network_device_memory mem; string name; - bool interpolation; + InterpolationType interpolation; bool periodic; device_ptr client_pointer; -- cgit v1.2.3