示例#1
0
文件: rna_world.c 项目: jinjoh/NOOR
void RNA_def_world(BlenderRNA *brna)
{
	StructRNA *srna;
	PropertyRNA *prop;

/*
	static EnumPropertyItem physics_engine_items[] = {
		{WOPHY_NONE, "NONE", 0, "None", ""},
		//{WOPHY_ENJI, "ENJI", 0, "Enji", ""},
		//{WOPHY_SUMO, "SUMO", 0, "Sumo (Deprecated)", ""},
		//{WOPHY_DYNAMO, "DYNAMO", 0, "Dynamo", ""},
		//{WOPHY_ODE, "ODE", 0, "ODE", ""},
		{WOPHY_BULLET, "BULLET", 0, "Bullet", ""},
		{0, NULL, 0, NULL, NULL}};
*/

	srna= RNA_def_struct(brna, "World", "ID");
	RNA_def_struct_ui_text(srna, "World", "World datablock describing the environment and ambient lighting of a scene.");
	RNA_def_struct_ui_icon(srna, ICON_WORLD_DATA);

	rna_def_animdata_common(srna);
	rna_def_mtex_common(srna, "rna_World_mtex_begin", "rna_World_active_texture_get",
		"rna_World_active_texture_set", "WorldTextureSlot", "rna_World_update");

	/* colors */
	prop= RNA_def_property(srna, "horizon_color", PROP_FLOAT, PROP_COLOR);
	RNA_def_property_float_sdna(prop, NULL, "horr");
	RNA_def_property_array(prop, 3);
	RNA_def_property_ui_text(prop, "Horizon Color", "Color at the horizon.");
	RNA_def_property_update(prop, 0, "rna_World_update");
	
	prop= RNA_def_property(srna, "zenith_color", PROP_FLOAT, PROP_COLOR);
	RNA_def_property_float_sdna(prop, NULL, "zenr");
	RNA_def_property_array(prop, 3);
	RNA_def_property_ui_text(prop, "Zenith Color", "Color at the zenith.");
	RNA_def_property_update(prop, 0, "rna_World_update");

	prop= RNA_def_property(srna, "ambient_color", PROP_FLOAT, PROP_COLOR);
	RNA_def_property_float_sdna(prop, NULL, "ambr");
	RNA_def_property_array(prop, 3);
	RNA_def_property_ui_text(prop, "Ambient Color", "");
	RNA_def_property_update(prop, 0, "rna_World_update");

	/* exp, range */
	prop= RNA_def_property(srna, "exposure", PROP_FLOAT, PROP_NONE);
	RNA_def_property_float_sdna(prop, NULL, "exp");
	RNA_def_property_range(prop, 0.0, 1.0);
	RNA_def_property_ui_text(prop, "Exposure", "Amount of exponential color correction for light.");
	RNA_def_property_update(prop, 0, "rna_World_update");

	prop= RNA_def_property(srna, "range", PROP_FLOAT, PROP_NONE);
	RNA_def_property_float_sdna(prop, NULL, "range");
	RNA_def_property_range(prop, 0.2, 5.0);
	RNA_def_property_ui_text(prop, "Range", "The color range that will be mapped to 0-1.");
	RNA_def_property_update(prop, 0, "rna_World_update");

	/* sky type */
	prop= RNA_def_property(srna, "blend_sky", PROP_BOOLEAN, PROP_NONE);
	RNA_def_property_boolean_sdna(prop, NULL, "skytype", WO_SKYBLEND);
	RNA_def_property_ui_text(prop, "Blend Sky", "Render background with natural progression from horizon to zenith.");
	RNA_def_property_update(prop, 0, "rna_World_update");

	prop= RNA_def_property(srna, "paper_sky", PROP_BOOLEAN, PROP_NONE);
	RNA_def_property_boolean_sdna(prop, NULL, "skytype", WO_SKYPAPER);
	RNA_def_property_ui_text(prop, "Paper Sky", "Flatten blend or texture coordinates.");
	RNA_def_property_update(prop, 0, "rna_World_update");

	prop= RNA_def_property(srna, "real_sky", PROP_BOOLEAN, PROP_NONE);
	RNA_def_property_boolean_sdna(prop, NULL, "skytype", WO_SKYREAL);
	RNA_def_property_ui_text(prop, "Real Sky", "Render background with a real horizon, relative to the camera angle.");
	RNA_def_property_update(prop, 0, "rna_World_update");

	/* nested structs */
	prop= RNA_def_property(srna, "ambient_occlusion", PROP_POINTER, PROP_NONE);
	RNA_def_property_flag(prop, PROP_NEVER_NULL);
	RNA_def_property_struct_type(prop, "WorldAmbientOcclusion");
	RNA_def_property_pointer_funcs(prop, "rna_World_ambient_occlusion_get", NULL, NULL);
	RNA_def_property_ui_text(prop, "Ambient Occlusion", "World ambient occlusion settings.");

	prop= RNA_def_property(srna, "mist", PROP_POINTER, PROP_NONE);
	RNA_def_property_flag(prop, PROP_NEVER_NULL);
	RNA_def_property_struct_type(prop, "WorldMistSettings");
	RNA_def_property_pointer_funcs(prop, "rna_World_mist_get", NULL, NULL);
	RNA_def_property_ui_text(prop, "Mist", "World mist settings.");

	prop= RNA_def_property(srna, "stars", PROP_POINTER, PROP_NONE);
	RNA_def_property_flag(prop, PROP_NEVER_NULL);
	RNA_def_property_struct_type(prop, "WorldStarsSettings");
	RNA_def_property_pointer_funcs(prop, "rna_World_stars_get", NULL, NULL);
	RNA_def_property_ui_text(prop, "Stars", "World stars settings.");

	rna_def_ambient_occlusion(brna);
	rna_def_world_mist(brna);
	rna_def_world_stars(brna);
	rna_def_world_mtex(brna);
}
示例#2
0
void RNA_def_world(BlenderRNA *brna)
{
    StructRNA *srna;
    PropertyRNA *prop;

#if 0
    static EnumPropertyItem physics_engine_items[] = {
        {WOPHY_NONE, "NONE", 0, "None", ""},
        /*{WOPHY_ENJI, "ENJI", 0, "Enji", ""}, */
        /*{WOPHY_SUMO, "SUMO", 0, "Sumo (Deprecated)", ""}, */
        /*{WOPHY_DYNAMO, "DYNAMO", 0, "Dynamo", ""}, */
        /*{WOPHY_ODE, "ODE", 0, "ODE", ""}, */
        {WOPHY_BULLET, "BULLET", 0, "Bullet", ""},
        {0, NULL, 0, NULL, NULL}
    };
#endif

    srna = RNA_def_struct(brna, "World", "ID");
    RNA_def_struct_ui_text(srna, "World",
                           "World datablock describing the environment and ambient lighting of a scene");
    RNA_def_struct_ui_icon(srna, ICON_WORLD_DATA);

    rna_def_animdata_common(srna);
    rna_def_mtex_common(brna, srna, "rna_World_mtex_begin", "rna_World_active_texture_get",
                        "rna_World_active_texture_set", NULL, "WorldTextureSlot", "WorldTextureSlots", "rna_World_update");

    /* colors */
    prop = RNA_def_property(srna, "horizon_color", PROP_FLOAT, PROP_COLOR);
    RNA_def_property_float_sdna(prop, NULL, "horr");
    RNA_def_property_array(prop, 3);
    RNA_def_property_ui_text(prop, "Horizon Color", "Color at the horizon");
    /* RNA_def_property_update(prop, 0, "rna_World_update"); */
    /* render-only uses this */
    RNA_def_property_update(prop, NC_WORLD|ND_WORLD_DRAW, "rna_World_update");


    prop = RNA_def_property(srna, "zenith_color", PROP_FLOAT, PROP_COLOR);
    RNA_def_property_float_sdna(prop, NULL, "zenr");
    RNA_def_property_array(prop, 3);
    RNA_def_property_ui_text(prop, "Zenith Color", "Color at the zenith");
    RNA_def_property_update(prop, 0, "rna_World_update");

    prop = RNA_def_property(srna, "ambient_color", PROP_FLOAT, PROP_COLOR);
    RNA_def_property_float_sdna(prop, NULL, "ambr");
    RNA_def_property_array(prop, 3);
    RNA_def_property_ui_text(prop, "Ambient Color", "Ambient color of the world");
    RNA_def_property_update(prop, 0, "rna_World_update");

    /* exp, range */
    prop = RNA_def_property(srna, "exposure", PROP_FLOAT, PROP_NONE);
    RNA_def_property_float_sdna(prop, NULL, "exp");
    RNA_def_property_range(prop, 0.0, 1.0);
    RNA_def_property_ui_text(prop, "Exposure", "Amount of exponential color correction for light");
    RNA_def_property_update(prop, 0, "rna_World_update");

    prop = RNA_def_property(srna, "color_range", PROP_FLOAT, PROP_NONE);
    RNA_def_property_float_sdna(prop, NULL, "range");
    RNA_def_property_range(prop, 0.2, 5.0);
    RNA_def_property_ui_text(prop, "Range", "The color range that will be mapped to 0-1");
    RNA_def_property_update(prop, 0, "rna_World_update");

    /* sky type */
    prop = RNA_def_property(srna, "use_sky_blend", PROP_BOOLEAN, PROP_NONE);
    RNA_def_property_boolean_sdna(prop, NULL, "skytype", WO_SKYBLEND);
    RNA_def_property_ui_text(prop, "Blend Sky", "Render background with natural progression from horizon to zenith");
    RNA_def_property_update(prop, 0, "rna_World_update");

    prop = RNA_def_property(srna, "use_sky_paper", PROP_BOOLEAN, PROP_NONE);
    RNA_def_property_boolean_sdna(prop, NULL, "skytype", WO_SKYPAPER);
    RNA_def_property_ui_text(prop, "Paper Sky", "Flatten blend or texture coordinates");
    RNA_def_property_update(prop, 0, "rna_World_update");

    prop = RNA_def_property(srna, "use_sky_real", PROP_BOOLEAN, PROP_NONE);
    RNA_def_property_boolean_sdna(prop, NULL, "skytype", WO_SKYREAL);
    RNA_def_property_ui_text(prop, "Real Sky", "Render background with a real horizon, relative to the camera angle");
    RNA_def_property_update(prop, 0, "rna_World_update");

    /* nested structs */
    prop = RNA_def_property(srna, "light_settings", PROP_POINTER, PROP_NONE);
    RNA_def_property_flag(prop, PROP_NEVER_NULL);
    RNA_def_property_struct_type(prop, "WorldLighting");
    RNA_def_property_pointer_funcs(prop, "rna_World_lighting_get", NULL, NULL, NULL);
    RNA_def_property_ui_text(prop, "Lighting", "World lighting settings");

    prop = RNA_def_property(srna, "mist_settings", PROP_POINTER, PROP_NONE);
    RNA_def_property_flag(prop, PROP_NEVER_NULL);
    RNA_def_property_struct_type(prop, "WorldMistSettings");
    RNA_def_property_pointer_funcs(prop, "rna_World_mist_get", NULL, NULL, NULL);
    RNA_def_property_ui_text(prop, "Mist", "World mist settings");

    prop = RNA_def_property(srna, "star_settings", PROP_POINTER, PROP_NONE);
    RNA_def_property_flag(prop, PROP_NEVER_NULL);
    RNA_def_property_struct_type(prop, "WorldStarsSettings");
    RNA_def_property_pointer_funcs(prop, "rna_World_stars_get", NULL, NULL, NULL);
    RNA_def_property_ui_text(prop, "Stars", "World stars settings");

    /* nodes */
    prop = RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE);
    RNA_def_property_pointer_sdna(prop, NULL, "nodetree");
    RNA_def_property_ui_text(prop, "Node Tree", "Node tree for node based worlds");

    prop = RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE);
    RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1);
    RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
    RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the world");
    RNA_def_property_update(prop, 0, "rna_World_use_nodes_update");

    rna_def_lighting(brna);
    rna_def_world_mist(brna);
    rna_def_world_stars(brna);
    rna_def_world_mtex(brna);
}