diff options
Diffstat (limited to 'source/blender/render/extern')
-rw-r--r-- | source/blender/render/extern/include/RE_bake.h | 3 | ||||
-rw-r--r-- | source/blender/render/extern/include/RE_engine.h | 1 | ||||
-rw-r--r-- | source/blender/render/extern/include/RE_pipeline.h | 54 | ||||
-rw-r--r-- | source/blender/render/extern/include/RE_render_ext.h | 8 | ||||
-rw-r--r-- | source/blender/render/extern/include/RE_shader_ext.h | 186 |
5 files changed, 7 insertions, 245 deletions
diff --git a/source/blender/render/extern/include/RE_bake.h b/source/blender/render/extern/include/RE_bake.h index 090e0e6c28d..d827a3507d9 100644 --- a/source/blender/render/extern/include/RE_bake.h +++ b/source/blender/render/extern/include/RE_bake.h @@ -76,9 +76,6 @@ bool RE_bake_engine( /* bake.c */ int RE_pass_depth(const eScenePassType pass_type); -bool RE_bake_internal( - struct Render *re, struct Object *object, const BakePixel pixel_array[], - const size_t num_pixels, const int depth, const eScenePassType pass_type, float result[]); bool RE_bake_pixels_populate_from_objects( struct Mesh *me_low, BakePixel pixel_array_from[], BakePixel pixel_array_to[], diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h index 64d87876a2e..e857d508424 100644 --- a/source/blender/render/extern/include/RE_engine.h +++ b/source/blender/render/extern/include/RE_engine.h @@ -69,7 +69,6 @@ struct ViewLayer; #define RE_USE_TEXTURE_PREVIEW 128 #define RE_USE_SHADING_NODES_CUSTOM 256 #define RE_USE_SPHERICAL_STEREO 512 -#define RE_USE_LEGACY_PIPELINE 1024 /* XXX Temporary flag, to be removed once draw manager is finished. */ /* RenderEngine.flag */ #define RE_ENGINE_ANIMATION 1 diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index e60fc3abad2..022f2a31826 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -49,7 +49,6 @@ struct RenderResult; struct ReportList; struct Scene; struct ViewLayer; -struct EnvMap; struct StampData; /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ @@ -251,10 +250,8 @@ void RE_ChangeModeFlag(struct Render *re, int flag, bool clear); struct Object *RE_GetCamera(struct Render *re); /* return camera override if set */ void RE_SetOverrideCamera(struct Render *re, struct Object *camera); void RE_SetCamera(struct Render *re, struct Object *camera); -void RE_SetEnvmapCamera(struct Render *re, struct Object *cam_ob, float viewscale, float clipsta, float clipend); void RE_SetWindow(struct Render *re, const rctf *viewplane, float clipsta, float clipend); void RE_SetOrtho(struct Render *re, const rctf *viewplane, float clipsta, float clipend); -void RE_SetPixelSize(struct Render *re, float pixsize); /* option to set viewmatrix before making dbase */ void RE_SetView(struct Render *re, float mat[4][4]); @@ -264,26 +261,13 @@ void RE_GetView(struct Render *re, float mat[4][4]); void RE_GetViewPlane(struct Render *re, rctf *r_viewplane, rcti *r_disprect); /* make or free the dbase */ -void RE_Database_FromScene( - struct Render *re, struct Main *bmain, struct Scene *scene, - unsigned int lay, int use_camera_view); void RE_Database_CameraOnly( struct Render *re, struct Main *bmain, struct Scene *scene, unsigned int lay, int use_camera_view); -void RE_Database_Preprocess(struct Depsgraph *depsgraph, struct Render *re); -void RE_Database_Free(struct Render *re); - -/* project dbase again, when viewplane/perspective changed */ -void RE_DataBase_ApplyWindow(struct Render *re); -/* rotate scene again, for incremental render */ -void RE_DataBase_IncrementalView(struct Render *re, float viewmat[4][4], int restore); /* set the render threads based on the commandline and autothreads setting */ void RE_init_threadcount(Render *re); -/* the main processor, assumes all was set OK! */ -void RE_TileProcessor(struct Render *re); - bool RE_WriteRenderViewsImage( struct ReportList *reports, struct RenderResult *rr, struct Scene *scene, const bool stamp, char *name); bool RE_WriteRenderViewsMovie( @@ -318,14 +302,6 @@ bool RE_WriteRenderResult( struct RenderResult *RE_MultilayerConvert( void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty); -extern const float default_envmap_layout[]; -bool RE_WriteEnvmapResult( - struct ReportList *reports, struct Scene *scene, struct EnvMap *env, - const char *relpath, const char imtype, float layout[12]); - -/* do a full sample buffer compo */ -void RE_MergeFullSample(struct Render *re, struct Main *bmain, struct Scene *sce, struct bNodeTree *ntree); - /* display and event callbacks */ void RE_display_init_cb (struct Render *re, void *handle, void (*f)(void *handle, RenderResult *rr)); void RE_display_clear_cb(struct Render *re, void *handle, void (*f)(void *handle, RenderResult *rr)); @@ -348,27 +324,10 @@ struct RenderPass *RE_pass_find_by_name(volatile struct RenderLayer *rl, const c struct RenderPass *RE_pass_find_by_type(volatile struct RenderLayer *rl, int passtype, const char *viewname); /* shaded view or baking options */ -#define RE_BAKE_LIGHT 0 /* not listed in rna_scene.c -> can't be enabled! */ -#define RE_BAKE_ALL 1 +#define RE_BAKE_NORMALS 0 +#define RE_BAKE_DISPLACEMENT 1 #define RE_BAKE_AO 2 -#define RE_BAKE_NORMALS 3 -#define RE_BAKE_TEXTURE 4 -#define RE_BAKE_DISPLACEMENT 5 -#define RE_BAKE_SHADOW 6 -#define RE_BAKE_SPEC_COLOR 7 -#define RE_BAKE_SPEC_INTENSITY 8 -#define RE_BAKE_MIRROR_COLOR 9 -#define RE_BAKE_MIRROR_INTENSITY 10 -#define RE_BAKE_ALPHA 11 -#define RE_BAKE_EMIT 12 -#define RE_BAKE_DERIVATIVE 13 -#define RE_BAKE_VERTEX_COLORS 14 - -void RE_Database_Baking( - struct Render *re, struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, - unsigned int lay, const int type, struct Object *actob); - -void RE_DataBase_GetView(struct Render *re, float mat[4][4]); + void RE_GetCameraWindow(struct Render *re, struct Object *camera, int frame, float mat[4][4]); void RE_GetCameraModelMatrix(struct Render *re, struct Object *camera, float r_mat[4][4]); struct Scene *RE_GetScene(struct Render *re); @@ -378,13 +337,6 @@ bool RE_is_rendering_allowed(struct Scene *scene, struct Object *camera_override bool RE_allow_render_generic_object(struct Object *ob); -/* RE_updateRenderInstances flag */ -enum { - RE_OBJECT_INSTANCES_UPDATE_VIEW = (1 << 0), - RE_OBJECT_INSTANCES_UPDATE_OBMAT = (1 << 1) -}; -void RE_updateRenderInstances(Render *re, int flag); - /******* defined in render_result.c *********/ bool RE_HasCombinedLayer(RenderResult *res); diff --git a/source/blender/render/extern/include/RE_render_ext.h b/source/blender/render/extern/include/RE_render_ext.h index cf0ff009190..3b4b9262465 100644 --- a/source/blender/render/extern/include/RE_render_ext.h +++ b/source/blender/render/extern/include/RE_render_ext.h @@ -56,12 +56,6 @@ float texture_value_blend(float tex, float out, float fact, float facg, int blen void RE_texture_rng_init(void); void RE_texture_rng_exit(void); -struct Material *RE_sample_material_init(struct Depsgraph *depsgraph, struct Material *orig_mat, struct Scene *scene); -void RE_sample_material_free(struct Material *mat); -void RE_sample_material_color( - struct Material *mat, float color[3], float *alpha, const float volume_co[3], const float surface_co[3], - int tri_index, struct DerivedMesh *orcoDm, struct Object *ob); - /* imagetexture.c */ void ibuf_sample(struct ImBuf *ibuf, float fx, float fy, float dx, float dy, float result[4]); @@ -85,4 +79,6 @@ void RE_point_density_sample( void RE_point_density_free(struct PointDensity *pd); +void RE_point_density_fix_linking(void); + #endif /* __RE_RENDER_EXT_H__ */ diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index 281f0082d7f..0d354c27e3a 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -33,7 +33,7 @@ #define __RE_SHADER_EXT_H__ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -/* this include is for shading and texture exports */ +/* this include is for texture exports */ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* localized texture result data */ @@ -44,148 +44,6 @@ typedef struct TexResult { float *nor; } TexResult; -/* localized shade result data */ -typedef struct ShadeResult { - float combined[4]; - float col[4]; - float alpha, mist, z; - float emit[3]; - float diff[3]; /* diffuse with no ramps, shadow, etc */ - float diffshad[3]; /* diffuse with shadow */ - float spec[3]; /* specular with shadow */ - float shad[4]; /* shad[3] is shadow intensity */ - float ao[3]; - float env[3]; - float indirect[3]; - float refl[3]; - float refr[3]; - float nor[3]; - float winspeed[4]; - float rayhits[4]; -} ShadeResult; - -/* only here for quick copy */ -struct ShadeInputCopy { - - struct Material *mat; - struct VlakRen *vlr; - struct StrandRen *strand; - struct ObjectInstanceRen *obi; - struct ObjectRen *obr; - int facenr; - float facenor[3]; /* copy from face */ - short flippednor; /* is facenor flipped? */ - struct VertRen *v1, *v2, *v3; /* vertices can be in any order for quads... */ - short i1, i2, i3; /* original vertex indices */ - short puno; - short osatex; - float vn[3], vno[3]; /* actual render normal, and a copy to restore it */ - float n1[3], n2[3], n3[3]; /* vertex normals, corrected */ - int mode, mode2; /* base material mode (OR-ed result of entire node tree) */ -}; - -typedef struct ShadeInputUV { - float dxuv[3], dyuv[3], uv[3]; - const char *name; -} ShadeInputUV; - -typedef struct ShadeInputCol { - float col[4]; - const char *name; -} ShadeInputCol; - -/* localized renderloop data */ -typedef struct ShadeInput { - /* copy from face, also to extract tria from quad */ - /* note it mirrors a struct above for quick copy */ - - struct Material *mat; - struct VlakRen *vlr; - struct StrandRen *strand; - struct ObjectInstanceRen *obi; - struct ObjectRen *obr; - int facenr; - float facenor[3]; /* copy from face */ - short flippednor; /* is facenor flipped? */ - struct VertRen *v1, *v2, *v3; /* vertices can be in any order for quads... */ - short i1, i2, i3; /* original vertex indices */ - short puno; - short osatex; - float vn[3], vno[3]; /* actual render normal, and a copy to restore it */ - float n1[3], n2[3], n3[3]; /* vertex normals, corrected */ - int mode, mode2; /* base material mode (OR-ed result of entire node tree) */ - - /* internal face coordinates */ - float u, v, dx_u, dx_v, dy_u, dy_v; - float co[3], view[3], camera_co[3]; - - /* copy from material, keep synced so we can do memcopy */ - /* current size: 23*4 */ - float r, g, b; - float specr, specg, specb; - float mirr, mirg, mirb; - float ambr, ambb, ambg; - - float amb, emit, ang, spectra, ray_mirror; - float alpha, refl, spec, zoffs, add; - float translucency; - /* end direct copy from material */ - - /* individual copies: */ - int har; /* hardness */ - - /* texture coordinates */ - float lo[3], gl[3], ref[3], orn[3], winco[3], vcol[4]; - float refcol[4], displace[3]; - float strandco, tang[3], nmapnorm[3], nmaptang[4], stress, winspeed[4]; - float duplilo[3], dupliuv[3]; - float tangents[8][4]; /* 8 = MAX_MTFACE */ - - ShadeInputUV uv[8]; /* 8 = MAX_MTFACE */ - ShadeInputCol col[8]; /* 8 = MAX_MCOL */ - int totuv, totcol, actuv, actcol; - - /* dx/dy OSA coordinates */ - float dxco[3], dyco[3]; - float dxlo[3], dylo[3], dxgl[3], dygl[3]; - float dxref[3], dyref[3], dxorn[3], dyorn[3]; - float dxno[3], dyno[3], dxview, dyview; - float dxlv[3], dylv[3]; - float dxwin[3], dywin[3]; - float dxrefract[3], dyrefract[3]; - float dxstrand, dystrand; - - /* AO is a pre-process now */ - float ao[3], indirect[3], env[3]; - - int xs, ys; /* pixel to be rendered */ - int mask; /* subsample mask */ - float scanco[3]; /* original scanline coordinate without jitter */ - - int samplenr; /* sample counter, to detect if we should do shadow again */ - int depth; /* 1 or larger on raytrace shading */ - int volume_depth; /* number of intersections through volumes */ - - /* for strand shading, normal at the surface */ - float surfnor[3], surfdist; - - /* from initialize, part or renderlayer */ - bool do_preview; /* for nodes, in previewrender */ - bool do_manage; /* color management flag */ - bool use_world_space_shading; - short thread, sample; /* sample: ShadeSample array index */ - short nodes; /* indicate node shading, temp hack to prevent recursion */ - - unsigned int lay; - int layflag, passflag, combinedflag; - short object_pass_index; - -#ifdef RE_RAYCOUNTER - RayCounter raycounter; -#endif - -} ShadeInput; - typedef struct BakeImBufuserData { float *displacement_buffer; char *mask_buffer; @@ -212,46 +70,6 @@ int multitex_ext(struct Tex *tex, int multitex_ext_safe(struct Tex *tex, float texvec[3], struct TexResult *texres, struct ImagePool *pool, bool scene_color_manage, const bool skip_load_image); /* only for internal node usage */ int multitex_nodes(struct Tex *tex, float texvec[3], float dxt[3], float dyt[3], int osatex, struct TexResult *texres, - const short thread, short which_output, struct ShadeInput *shi, struct MTex *mtex, - struct ImagePool *pool); -float RE_lamp_get_data(struct ShadeInput *shi, struct Object *lamp_obj, float col[4], float lv[3], float *dist, float shadow[4]); -void RE_instance_get_particle_info(struct ObjectInstanceRen *obi, float *index, float *random, float *age, float *lifetime, float co[3], float *size, float vel[3], float angvel[3]); - -float RE_fresnel_dielectric(float incoming[3], float normal[3], float eta); - -/* shaded view and bake */ -struct Render; -struct Image; - -int RE_bake_shade_all_selected(struct Render *re, int type, struct Object *actob, short *do_update, float *progress); -struct Image *RE_bake_shade_get_image(void); -void RE_bake_ibuf_filter(struct ImBuf *ibuf, char *mask, const int filter); -void RE_bake_ibuf_normalize_displacement(struct ImBuf *ibuf, float *displacement, char *mask, float displacement_min, float displacement_max); -float RE_bake_make_derivative(struct ImBuf *ibuf, float *heights_buffer, const char *mask, - const float height_min, const float height_max, - const float fmult); - -enum { - RE_OBJECT_INSTANCE_MATRIX_OB, - RE_OBJECT_INSTANCE_MATRIX_OBINV, - RE_OBJECT_INSTANCE_MATRIX_LOCALTOVIEW, - RE_OBJECT_INSTANCE_MATRIX_LOCALTOVIEWINV, -}; - -const float (*RE_object_instance_get_matrix(struct ObjectInstanceRen *obi, int matrix_id))[4]; - -float RE_object_instance_get_object_pass_index(struct ObjectInstanceRen *obi); -float RE_object_instance_get_random_id(struct ObjectInstanceRen *obi); - -enum { - RE_VIEW_MATRIX, - RE_VIEWINV_MATRIX, -}; - -const float (*RE_render_current_get_matrix(int matrix_id))[4]; - -#define BAKE_RESULT_OK 0 -#define BAKE_RESULT_NO_OBJECTS 1 -#define BAKE_RESULT_FEEDBACK_LOOP 2 + const short thread, short which_output, struct MTex *mtex, struct ImagePool *pool); #endif /* __RE_SHADER_EXT_H__ */ |