Jump to content

[WIP] Kopernicus Expansion v0.2: comets, footprints, new PQSMods for Kopernicus


MrHappyFace

Recommended Posts

As of Kopernicus version 0.3, it has included an API for plugin authors to use to extend the Kopernicus config format. This mod uses that API to allow planet pack authors to enhance their planets with effects like comet tails, procedurally animated gas giants, and more.

This plugin requires Kopernicus v0.3 or higher to work, and will not load without it.

It should be noted that this plugin is intended to be used by planet pack authors to enhance there planets, and it does nothing by itself.

Without further ado, here are the effects you can create with this:

Animated Gas Giants:

This video explains it nicely:

Basically, it's a new shader which procedurally renders moving gas clouds and storms using turbulence noise. The video is a little bit outdated, as all the bugs pointed out have been fixed.

The configuration of these things is actually really easy, and there's even an option in the configuration to generate the required color ramp from the existing gas giant texture.

Comet Tails

 

These comets are certainly much better than crummy, particle based comets stock Kopernicus provides, and (IMO) look much better than the Alternis Kerbol comets.

Like the gas giants, it's a shader which procedurally renders the comet tail using turbulence noise. The animation also responds to time warp.

The tail will fade and change it's intensity based on distance from the sun.

Right now, it's not completely configurable, but it will be in the next update.

Glowing Oceans

 

This effect was originally from my mod New Kerbol, (link) which is, unfortunately, currently outdated.

It uses two new shaders to make it emissive: one for the PQS, and one for the ScaledSpace.

I've adapted it to Kopernicus, and it is fully configurable.

Heat Refraction

Unfortunately, I don't have any gifs or images of this effect right now, but it doesn't really deserve it because it's really crummy. The example configs include a heat refraction config for Kerbin.

It's supposed to make planets look like they're very hot by adding a heat refraction shader effect to the camera.

The example configs (ZZZ_KopE_Examples.zip) should help any planet pack authors who want to use this get started, but this is not by any means complete so expect changes to the config format in the future.

Source: https://github.com/HappyFaceIndustries/KopernicusExpansion

Download: https://github.com/HappyFaceIndustries/KopernicusExpansion/releases/latest

  • Advanced height noise PQSMod
  • Per-planet music
  • Atmospheric particles, like snow, wind, etc.
  • Life
  • Trees

I want to add more effects in the future, and I'm open to suggestions.

Edited by MrHappyFace
forgot to rename thread
Link to comment
Share on other sites

Thomas P, I hope you include this in stock Kopernicus, becasue this is just awesome.

That kind of defeats the purpose, seeing as this is an expansion. Besides, these shaders aren't exactly the most optimized shaders, and might not even run on some more basic graphics cards.

Wasn't char the in-dev name for Moho, back when it was going to have lava oceans?

Edited by MrHappyFace
Link to comment
Share on other sites

Very, very cool. Already trying the procedural clouds on my mod's gas giants. Might I make a suggestion though. Make the examples a separte download. Kopernicus has its examples outside of GameData and even then people come to planet pack threads like mine to complain about weird planets (the examples) messing up their game, because they installed the examples thinking that they needed to install them because they came with the download. Imagine how worse it would be if the examples loaded by default. Only the devs need the examples and they'll go through the effort of downloading them separately.

Question, do the configs do any harm if the mod is not loaded. I.e. can I have the procedural gas giant stuff in my main Kopernicus config for these planets even if Expansion is not installed? Or do I need to write a ModuleManager config for it that only activates if your mod is found?

Link to comment
Share on other sites

Make the examples a separate download.

Yeah, I'll probably do that when I get home.

Question, do the configs do any harm if the mod is not loaded. I.e. can I have the procedural gas giant stuff in my main Kopernicus config for these planets even if Expansion is not installed? Or do I need to write a ModuleManager config for it that only activates if your mod is found?

If you don't have this plugin installed, Kopernicus will ignore the extra config nodes.

This means that visual/atmospheric things, like the gas giant shader, or the glowing oceans are safe to not have installed, but other things, like any custom PQS mods that I may include in the future, will break the planet if this isn't installed. In short, it's only optional if you exclusively use the visual effects.

I will try to warn you which effects will break the game if they're not installed, but, for now, everything is safe. You can use a MM config to alleviate this, by not including any planets using non-optional effects.

For the Gas giant effect, you can do something like this to ensure compatibility with people who can't run the shaders, or choose to disable them.


Body
{
ScaledVersion
{
Material
{
texture = pathToScaledTexture
//... the rest of the properties ...
}
ProceduralGasGiant
{
generateRampFromScaledTexture = pathToScaledTexture
//... the rest of the properties ...
}
}
}

That config will generate the required color ramp automatically from the scaled material's texture.

Also, in case you didn't already know, you can set the line mode = normal to mode = editor in the Settings.cfg file (found in GameData/KopernicusExpansion/) to access the gas giant editor in the tracking station.

Edited by MrHappyFace
Link to comment
Share on other sites

Congraats! Realy! ;( Well, now hyped to mess with my new gas giant's cloud animations... I only need to fix the configs... hey doesn anyone have a good basic planet example?

- - - Updated - - -

Also, could you add a Volcano plugin? It was a reeeeal pain in the ass to figure out how to make the volcano in kerbol plus, but it was just too hacky! And we couldn't even choose where to out it! Cheers and I hope volcanoes and criovolcanoes get implemented!

Link to comment
Share on other sites

This config is pretty clean:


@Kopernicus:AFTER[Kopernicus]
{
Body
{
name = Kipler
Properties
{
description = Kipler is famous for it's swirling clouds and it's brilliant, golden color. It might also have a few moons, but kerbals, being easily destracted by shiny objects, didn't discover them until recently.
radius = 4500000
geeASL = 0.6
rotates = true
rotationPeriod = 14000
timewarpAltitudeLimits = 0 200000 200000 100000 100000 1000000 5000000 50000000
ScienceValues
{
flyingLowDataValue = 10
flyingHighDataValue = 9.5
inSpaceLowDataValue = 9
inSpaceHighDataValue = 8.5
recoveryValue = 9
flyingAltitudeThreshold = 140000
spaceAltitudeThreshold = 3000000
}
}
Orbit
{
referenceBody = Sun
color = #ffb000
inclination = 0.8
eccentricity = 0.03
semiMajorAxis = 35000000000
}
Atmosphere
{
enabled = true
oxygen = false

ambientColor = #ffb000
lightColor = 0.46629,0.51685,1,1

atmosphereDepth = 200000
staticDensityASL = 100

temperatureSeaLevel = 280
temperatureSunMultCurve = false
temperatureCurve
{
key = 0 280
key = 120000 180
key = 200000 0
}
}
ScaledVersion
{
type = Vacuum
Material
{
texture = NewKerbol/Textures/KiplerColor
color = 1,1,1,1
specular = 0,0,0,0
shininess = 0
}
ProceduralGasGiant
{
generateRampFromScaledTexture = NewKerbol/Textures/KiplerColor
hasStorms = false
}
}
}
}

This config is for a gas planet. I don't have any clean PQS planets yet.

---

Also, could you add a Volcano plugin? It was a reeeeal pain in the ass to figure out how to make the volcano in kerbol plus, but it was just too hacky! And we couldn't even choose where to out it! Cheers and I hope volcanoes and criovolcanoes get implemented!

On a large scale, volcanos have to be implemented with particles, and modifications to the heightmap (or MapDecals, if you know how to use them). If you're just talking about small geysers, that's planned for a future update. :D

Edited by MrHappyFace
Link to comment
Share on other sites

This config is pretty clean:


@Kopernicus:AFTER[Kopernicus]
{
Body
{
name = Kipler
Properties
{
description = Kipler is famous for it's swirling clouds and it's brilliant, golden color. It might also have a few moons, but kerbals, being easily destracted by shiny objects, didn't discover them until recently.
radius = 4500000
geeASL = 0.6
rotates = true
rotationPeriod = 14000
timewarpAltitudeLimits = 0 200000 200000 100000 100000 1000000 5000000 50000000
ScienceValues
{
flyingLowDataValue = 10
flyingHighDataValue = 9.5
inSpaceLowDataValue = 9
inSpaceHighDataValue = 8.5
recoveryValue = 9
flyingAltitudeThreshold = 140000
spaceAltitudeThreshold = 3000000
}
}
Orbit
{
referenceBody = Sun
color = #ffb000
inclination = 0.8
eccentricity = 0.03
semiMajorAxis = 35000000000
}
Atmosphere
{
enabled = true
oxygen = false

ambientColor = #ffb000
lightColor = 0.46629,0.51685,1,1

atmosphereDepth = 200000
staticDensityASL = 100

temperatureSeaLevel = 280
temperatureSunMultCurve = false
temperatureCurve
{
key = 0 280
key = 120000 180
key = 200000 0
}
}
ScaledVersion
{
type = Vacuum
Material
{
texture = NewKerbol/Textures/KiplerColor
color = 1,1,1,1
specular = 0,0,0,0
shininess = 0
}
ProceduralGasGiant
{
generateRampFromScaledTexture = NewKerbol/Textures/KiplerColor
hasStorms = false
}
}
}
}

This config is for a gas planet. I don't have any clean PQS planets yet.

---

On a large scale, volcanos have to be implemented with particles, and modifications to the heightmap (or MapDecals, if you know how to use them). If you're just talking about small geysers, that's planned for a future update. :D[/quote

Oh, awesome! I was talking about PQS planets, but now at least I know how to update my gas giants to use this!

Good to hear about geysers, but I was talking about big volcanoes, like the one we had in K+! Cheers!

Link to comment
Share on other sites

New small release: v0.1.1

Changelog:

  • Moved example configs into seperate download
  • Added separate default brightness curve for dust comet tails
  • Moved dll and settings into base KopernicusExpansion directory

Download: https://github.com/HappyFaceIndustries/KopernicusExpansion/releases/tag/0.1.1

Download Example Configs: Download the zip file entitled ZZZ_KopE_Examples.v0.1.1.zip

BTW, I would prefer that any planet packs using this include it in their downloads.

Link to comment
Share on other sites

New small release: v0.1.1

Changelog:

  • Moved example configs into seperate download
  • Added separate default brightness curve for dust comet tails
  • Moved dll and settings into base KopernicusExpansion directory

Download: https://github.com/HappyFaceIndustries/KopernicusExpansion/releases/tag/0.1.1

Download Example Configs: Download the zip file entitled ZZZ_KopE_Examples.v0.1.1.zip

BTW, I would prefer that any planet packs using this include it in their downloads.

Awesome!

Link to comment
Share on other sites

It looks like it's an openGL issue. I ran the game in -force-opengl mode, and this happened:

R8BOGjL.jpg

Thankfully, the comet tail shaders don't have the same issue.

---

Edit: seems to be an easy fix... Might be able to release a fix today

Edited by MrHappyFace
Link to comment
Share on other sites

New release! 0.1.2

Changelog:

  • fixed bug where orbits rendered behind procedural gas giants
  • fixed OpenGL incompatibility issue for procedural gas giants
  • removed procedural storm generation from procedural gas giants, and replaced it with a texture map for specifying storms

Download: https://github.com/HappyFaceIndustries/KopernicusExpansion/releases/tag/0.1.2

As the last changelog entry says, storms are now defined manually, using a storm map texture.

Images: http://imgur.com/a/reysf

The storm map is the first image, in it's full 2048x1024 resolution, and the second image is a screenshot of it ingame.

Basically, the alpha value determines how close any given pixel is to a storm. An alpha value of 0 makes no change, and an alpha value of 1 is the center of the storm. The color channels don't matter, as only the alpha value does anything.

This is the first non-prerelease, and it should work everywhere, with or without OpenGL now. :D

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...