The user sees it because you're doing an external redirect (that is, sending back an HTTP 3xx response) rather than an internal rewrite. You'll need to get rid of the R flag as well as the absolute URL.
RewriteRule ^projekty/(.*)$ http://3d-webstudio.com/projects/sub1/sub2/index.html$1 [R=301,L]
RewriteRule ^projekty/(.*)$ projects/sub1/sub2/index.html$1 [L]
Also, there may be another problem. In your example URL, you have "projects" but in your rewrite you have "projekty". Assuming the latter is a typo and is supposed to be "projects", the problem is that the pattern ^projects/(.*)$ will match every URL under projects/, including the URL you're trying to rewrite to -- projects/sub1/sub2/index.html -- so you'll end up in a rewrite loop.
To solve this, we're going to have to get more specific about what you actually intend to match. For example, if you intend for only the one url projects/ to be rewriten, then you could write it this way.
RewriteRule ^projects/$ projects/sub1/sub2/index.html$1 [L]
Or, if instead you intend to match all sub-paths of projects/, then you'll have to filter out your new URL path.
RewriteCond $1 !^sub1/sub2/
RewriteRule ^projects/(.*)$ projects/sub1/sub2/index.html$1 [L]