Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/render/bake.h
| Show All 19 Lines | |||||
| #include "device/device.h" | #include "device/device.h" | ||||
| #include "render/scene.h" | #include "render/scene.h" | ||||
| #include "util/util_progress.h" | #include "util/util_progress.h" | ||||
| #include "util/util_vector.h" | #include "util/util_vector.h" | ||||
| CCL_NAMESPACE_BEGIN | CCL_NAMESPACE_BEGIN | ||||
| class BakeData { | |||||
| public: | |||||
| BakeData(const int object, const size_t tri_offset, const size_t num_pixels); | |||||
| ~BakeData(); | |||||
| void set(int i, int prim, float uv[2], float dudx, float dudy, float dvdx, float dvdy); | |||||
| void set_null(int i); | |||||
| int object(); | |||||
| size_t size(); | |||||
| uint4 data(int i); | |||||
| uint4 differentials(int i); | |||||
| bool is_valid(int i); | |||||
| private: | |||||
| int m_object; | |||||
| size_t m_tri_offset; | |||||
| size_t m_num_pixels; | |||||
| vector<int>m_primitive; | |||||
| vector<float>m_u; | |||||
| vector<float>m_v; | |||||
| vector<float>m_dudx; | |||||
| vector<float>m_dudy; | |||||
| vector<float>m_dvdx; | |||||
| vector<float>m_dvdy; | |||||
| }; | |||||
| class BakeManager { | class BakeManager { | ||||
| public: | public: | ||||
| BakeManager(); | BakeManager(); | ||||
| ~BakeManager(); | ~BakeManager(); | ||||
| void set(Scene *scene, const std::string& object_name, ShaderEvalType type, int pass_filter); | |||||
| bool get_baking(); | bool get_baking(); | ||||
| void set_baking(const bool value); | |||||
| BakeData *init(const int object, const size_t tri_offset, const size_t num_pixels); | |||||
| void set_shader_limit(const size_t x, const size_t y); | |||||
| bool bake(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress, ShaderEvalType shader_type, const int pass_filter, BakeData *bake_data, float result[]); | |||||
| void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); | void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress); | ||||
| void device_free(Device *device, DeviceScene *dscene); | void device_free(Device *device, DeviceScene *dscene); | ||||
| static int shader_type_to_pass_filter(ShaderEvalType type, const int pass_filter); | |||||
| static int aa_samples(Scene *scene, BakeData *bake_data, ShaderEvalType type); | |||||
| bool need_update; | bool need_update; | ||||
| size_t total_pixel_samples; | |||||
| private: | private: | ||||
| BakeData *m_bake_data; | ShaderEvalType type; | ||||
| bool m_is_baking; | int pass_filter; | ||||
| size_t m_shader_limit; | std::string object_name; | ||||
| }; | }; | ||||
| CCL_NAMESPACE_END | CCL_NAMESPACE_END | ||||
| #endif /* __BAKE_H__ */ | #endif /* __BAKE_H__ */ | ||||