diff --git a/README.md b/README.md new file mode 100644 index 0000000..0e1f9e5 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# Shell Texturing + +Following the [video](https://www.youtube.com/watch?v=9dr-tRQzij4) by Acerola explaining shell texturing in video games, I decided to recreate it in Godot. + +For now this uses a MultiMeshInstance and a custom shader with some basic shading in it. + +![Screenshot of Godot with a plane with green grass extruding from it.](grass_overview_v01.jpg "Grass Overview") +As can be seen here it gives the illusion of grass made of mesh when observed from a high angle. But the illusion breaks when the observation angle gets shallow. + +![Screenshot of Godot with a closeup of the grass in a shallow angle. The separate shells are easily visible.](grass_closeup_low_v01.jpg "Grass Closeup") + diff --git a/grass_closeup_low_v01.jpg b/grass_closeup_low_v01.jpg new file mode 100644 index 0000000..44ff591 Binary files /dev/null and b/grass_closeup_low_v01.jpg differ diff --git a/grass_closeup_low_v01.jpg.import b/grass_closeup_low_v01.jpg.import new file mode 100644 index 0000000..bd44250 --- /dev/null +++ b/grass_closeup_low_v01.jpg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5npds7asoh6k" +path="res://.godot/imported/grass_closeup_low_v01.jpg-cf74cb60dfa4dcf60b68736487cf84ac.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://grass_closeup_low_v01.jpg" +dest_files=["res://.godot/imported/grass_closeup_low_v01.jpg-cf74cb60dfa4dcf60b68736487cf84ac.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/grass_overview_v01.jpg b/grass_overview_v01.jpg new file mode 100644 index 0000000..ca85443 Binary files /dev/null and b/grass_overview_v01.jpg differ diff --git a/grass_overview_v01.jpg.import b/grass_overview_v01.jpg.import new file mode 100644 index 0000000..1985561 --- /dev/null +++ b/grass_overview_v01.jpg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chxnrpf4lbtrf" +path="res://.godot/imported/grass_overview_v01.jpg-30ceedbffbc7f9a30e881e0ab910f5a9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://grass_overview_v01.jpg" +dest_files=["res://.godot/imported/grass_overview_v01.jpg-30ceedbffbc7f9a30e881e0ab910f5a9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1